[Objective-C]NSString和NSMutableString详解

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
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值