OC

《Objective-C基础教程》读书笔记5.1—字符串

2018-06-09  本文已影响19人  天山雪莲_38324

1 字符串
NSString, Cocoa中用来处理字符串的类。字符串其实就是一组人类刻度的字符序列。由于计算机与人类进行定期交互,因此最好让它们有一个可以存储和处理人类可读文本的方式。NSString型数据,特殊的NSString字面量,其标志为双引号内字符串前面的@符号。与OC不同,C语言将字符串作为简单的字符数组进行处理,并且在数组最后添加尾部的零字节作为结束标志。
1.1 创建字符串
NSString的StringWithFormat:方法是通过接受格式字符串和参数来创建NSString的。
+(id)stringWithFormat: (NSString *)format, ......;


9301275F-3E26-4046-BCE5-3DA180B13A16.png
91CEECFF-9934-464D-A166-07101F5BDF14.png

1.2 类方法
stringWithFormat:的声明中有两个值得注意的地方。第一个是定义最后的省略号(...), 它告诉我们和编译器这个方法可以接受多个以逗号隔开的其他参数。第二个就是声明语句中的起始字符:一个+号。Objective-C运行时生成一个类的时候,会创建一个代表该类的类对象(class object)。类对象包含了指向超类、类名和方法列表的指针,还包含一个long类型的数据,为新创建的实例对象指定大小(以字节为单位)。
如果你在声明方法时添加了加号,就是把这个方法定义为类方法(class method)。这个方法属于类对象,而不是类的实例对象,通常用于创建新的实例。我们称这种用来创建新对象的类方法为工厂方法(factory method)。
stringWithFormat:就是一个工厂方法,它根据你提供的参数创建新对象。用stringWithFormat:来创建字符串比创建空字符串然后生成所有元素要容易得多。
类方法也可以用来访问全局数据。AppKit(基于OS X平台)中的NSColor类和UIKit(基于iOS平台)中的UIColor类都拥有以各种颜色命名的类方法。
一般在开发中创建的大部分方法都是实例方法,要用减号(—)作为前缀来进行声明。这些方法将会在指定的对象实例中起作用。如果某个方法实现的是很通用的功能,比如创建一个实例对象或者访问一些全局类数据,那么最好使用加号(+)作为前缀将它声明为类方法。
1.3 关于大小
NSString中有一个实例方法是length,它返回的是字符串中的字符串个数。


1528620192112.jpg
1528619931013.jpg
NSString的length方法能够精确无误地处理各种语言的字符串,如含有俄文、中文或者日文字符的字符串,以及使用Unicode国际字符标准的字符串。
1.4 字符串比较
isEqualToString:可以用来比较接收方(receiver, 接收消息的对象)和作为参数传递过来的字符串。isEqualToString: 返回一个BOOL值(YES或NO)来表示两个字符串的内容是否相同。它的声明如下。

1.7 可变性
NSString是不可变(immutable)的,这并不意味着你不能操作它们。不可变的意思是NSString一旦被创建,便不能改变。你可以对它执行各种各样的操作,例如用它来生成新的字符串、查找字符或者将它与其他字符串进行比较,但是你不能以删除字符或者添加字符的方式来改变它。
Cocoa提供了一个NSString的子类,叫做NSMutableString,如果你想改变字符串,请使用这个子类。这种区别类似于Java语言,NSString类似于Java中的String , 而NSMutableString则与Java中的StringBuffer一样。
1.7.1 你可以使用类方法stringWithCapacity:来创建一个新的NSMutableString,声明如下:

1532324192404.jpg 1532324212226.jpg 1532324278207.jpg 1532324324596.jpg

2.拼接字符串


1532325372694.jpg

3.字符串大小写
3.1字符串小写


1532325738415.jpg
3.2字符串大写
1532325781642.jpg
4.分割字符串
1532327357346.jpg
1532337813843.jpg
1532337667487.jpg

注意:上述方法,如果接收分割消息的字符串对象中没有包含所传参数指定的字符串,则该方法会返回一个数组,数组中的元素是原字符串对象(receiver)。


1532327549661.jpg
注意:
1532333918370.jpg
1532333958516.jpg
即:第一个方法分割后获得的字符串包含所传参数指定下标的字符,而第二个方法分割后获得的字符串不包含所传参数指定下标的字符。
5.查询字符串
1532327827398.jpg
1532327898870.jpg
6.替换字符串
1532329542719.jpg
1532329583048.jpg
7.计算字符串所绘制文本矩形区域的frame
1532330018132.jpg
8.从字符串中得到相应数值
1532330167998.jpg

9.用来打开指定路径的文件,读取文件内容,并使用文件内容初始化一个字符串


1539701906812.jpg
注意:encoding参数将文件内容的类型告诉API。一般来说,你应该使用NSUTF8StringEncoding,它表示文件内容是用UTF8格式进行编码的。最后一个参数会在初始化没有发生错误时返回nil值。如果出现了错误,你可以使用localizedDescription方法来查明情况。
二、NSMutableString有关的API的学习
1.创建和初始化一个可变字符串
1532403790902.jpg
2.修改可变字符串
1532403983541.jpg
上一篇 下一篇

猜你喜欢

热点阅读