Object C学习笔记9-字符串NSMutableString
2014-02-15 13:11 贺臣 阅读(4615) 评论(0) 编辑 收藏 举报
NSMutableString类继承自NSString,所以在NSString中的方法在NSMutableString都可以使用. NSMutableString和NSString的区别在于NSMutableString是动态的字符串,可以动态的添加,修改,删除等。在前面提到了就和.NET中的string和StringBuilder的区别一样。
1. 添加字符串
向字符串末尾添加字符串可以使用appendString方法和appendFormat方法。appendString方法主要用于向字符串末尾添加一个字符串;appendFormat 方法用于向字符串末尾添加多种类型的字符串,相当于.NET中的appendFormat 方法使用占位符。

NSMutableString *str=[[NSMutableString alloc] init]; [str appendString:@"NSMutableString 字符串"]; NSLog(@"appendString=%@",str); [str appendFormat:@" --我的名字:%@ , 年龄 %d",@"Object C",10]; NSLog(@"appendFormat: %@",str);
测试效果如下:

2014-02-15 12:30:21.476 ObjectC10[1233:303] appendString=NSMutableString 字符串 2014-02-15 12:30:21.478 ObjectC10[1233:303] appendFormat: NSMutableString 字符串 --我的名字:Object C , 年龄 10
2. 删除字符串
在NSMutableString中使用stringWithString方法来初始化字符串;
使用rangeOfString获取某个字符串在原字符串的位置以及长度;
使用deleteCharactersInRange方法删除特定位置的字符串

NSMutableString *str=[NSMutableString stringWithString:@"Object C 之NSMutableString类"]; NSLog(@"stringWithString= %@ ",str); NSRange range= [str rangeOfString:@"Mutable"]; NSLog(@"Location=%d",range.location); NSLog(@"length=%d",range.length); [str deleteCharactersInRange:range]; NSLog(@"deleteCharactersInRange=%@",str);
测试效果如下:

2014-02-15 12:45:34.078 ObjectC10[1272:303] stringWithString= Object C 之NSMutableString类 2014-02-15 12:45:34.080 ObjectC10[1272:303] Location=12 2014-02-15 12:45:34.080 ObjectC10[1272:303] length=7 2014-02-15 12:45:34.080 ObjectC10[1272:303] deleteCharactersInRange=Object C 之NSString类
3. 插入字符串
在NSMutableString中在某个字符串特定位置添加一个字符串使用insertString方法;

NSMutableString *str=[NSMutableString stringWithString:@"Obejct C"]; NSLog(@"%@",str); NSString *str2=@"学习"; [str insertString:str2 atIndex:6]; NSLog(@"insertString= %@",str);
测试效果如下:

2014-02-15 12:53:14.517 ObjectC10[1294:303] Obejct C 2014-02-15 12:53:14.519 ObjectC10[1294:303] insertString= Obejct学习 C
4.字符串拷贝
因为NSMutableString是引用类型,也就是指针类型,当一个变量赋值给另外一个变量的时候,两者其实是指向的同一个地址。

//创建字符串 NSMutableString *str1 = [NSMutableString stringWithString: @"字符串1"]; NSMutableString *str2; //字符串赋值 str2 = str1; [str2 appendString: @" 和字符串2"]; NSLog (@"str1 = %@", str1); NSLog (@"str2 = %@", str2);
测试效果如下:

2014-02-15 12:55:33.667 ObjectC10[1308:303] str1 = 字符串1 和字符串2 2014-02-15 12:55:33.683 ObjectC10[1308:303] str2 = 字符串1 和字符串2
5. 字符串类型转换
intValue用于将字符串类型转换为int 类型
integerValue用于将字符串类型转换为NSInteger 类型
floatValue用于将字符串类型转换为float类型
doubleValue用于将字符串类型转换为double类型

NSString *str1=@"123"; int value1=[str1 intValue]; NSLog(@"转化为int类型: str1=%d",value1); NSString *str2=@"1234"; NSInteger value2=[str2 integerValue]; NSLog(@"转化为NSInteger类型: str2=%i",value2); NSString *str3=@"3.1415"; float value3=[str3 floatValue]; NSLog(@"转换为float类型: str3=%0.4f",value3); double value4=[str3 floatValue]; NSLog(@"转换为double类型: str3=%0.4f",value4);
测试效果如下:

2014-02-15 13:07:00.070 ObjectC10[1378:303] 转化为int类型: str1=123 2014-02-15 13:07:00.094 ObjectC10[1378:303] 转化为NSInteger类型: str2=1234 2014-02-15 13:07:00.094 ObjectC10[1378:303] 转换为float类型: str3=3.1415 2014-02-15 13:07:00.095 ObjectC10[1378:303] 转换为double类型: str3=3.1415
如果字符串格式有问题,则转换的时候会报异常。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架