[Objective-C]NSString和NSMutableString详解

[Objective-C]NSString和NSMutableString详解,第1张

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

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/993417.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-21
下一篇 2022-05-21

发表评论

登录后才能评论

评论列表(0条)

保存