NSString
概述
1.NSString是一个数据类型,用来保存OC字符串,一旦创建就无法修改
2.NSString本质上是Fundation框架中的一个类,OC中的字符串本质上使用NSString对象来存储的
创建标准的NSString对象
1.创建空字符串
NSString *str0 = [NSString new];
NSString *str1 = [NSString string];
2.简便创建方法
NSString *str = @"Master";
注意:@“Master”本质上是一个对象,str是一个存储该对象地址的指针变量
用 %@ 打印指针变量指向的对象,%p打印指针变量的值
eg: NSLog(@"%@",str); //Master
NSLog(@"%p",str); //0x100004010
NSString最常用的类方法
1.将C语言字符串转换为OC字符串对象
+ (nullable instancetype)stringWithUTF8String:(const char *)nullTerminatedCString;
2.使用变量或其他数据拼接一个OC字符串对象
+ (instancetype)stringWithFormat:(NSString *)format, ... NS_FORMAT_FUNCTION(1,2);
eg:int age = 21;
NSString *name = @"小明";
NSString *str = [NSString stringWithFormat:@"我叫%@,今年%d岁",name,age];
NSLog(@"%@",str);
*打印结果:我叫小明,今年21岁*
NSString最常用的对象方法
1.获取字符串长度
NSString *str = @"Master";
NSLog(@"length = %lu",[str length]); //length = 6
2.获取字符串中制定下标的字符
- (unichar)characterAtIndex:(NSUInteger)index;
返回值是unichar其实就是unsinged short,占2个字符
eg: NSString *str = @"Master";
unichar ch = [str characterAtIndex:2];
NSLog(@"%c",ch); //s
输出char型用’%c‘;输出unichar(包括中文)用’%C‘
3.判断两个字符串内容是否相等
- (BOOL)isEqualToString:(NSString *)aString;
注意:用 ‘==’ 判断字符串相等会出错
4.比较两个字符串的大小
- (NSComparisonResult)compare:(NSString *)string;
返回值为枚举类似,用int来接收即可,
返回-1,小于;返回0,表示等于;返回1,表示大于。
NSMutableString
概述
1.NSMutableString是Fundation框架中的一个类,从NSString继承
2.相对于父类所做的扩展:NSMutableString对象具有可变性,可以直接更改,不需要创建新的对象
注意:NSString中的stringWithFormat方法也可以更改字符串内容,但是NSString对象本身不支持修改,需要创建新的NSString对象
NSMutableString的用法
1.创建对象
NSMutableString *str = [NSMutableString string];
......
注意:以下这种创建方式是错误的
NSMutableString *str = @"jack";
@"jack"是一个NSString对象,是一个父类对象,而str指针是一个子类NSMutableString的指针,如果通过子类指针去调用子类独有的成员,就会运行错误。
2.往可变字符串对象中最佳字符串
//直接在末尾追加
- (void)appendString:(NSString *)aString;
//以拼接的方式往可变字符串对象中追加内容
- (void)appendFormat:(NSString *)format, ...
eg: NSMutableString *str = [NSMutableString string];
[str appendFormat:@"1111"]; //1111
[str appendString:@"2222"]; //11112222
[str appendFormat:@" appendFormat %d",99]; //11112222 appendFormat 99
|