NSMutalbleString
NSMutableString和NSString的区别
- NSString是不可变的, 里面的文字内容是不能进行修改的
- NSMutableString是可变的, 里面的文字内容可以随时更改
- NSMutableString能使用NSString的所有方法
什么是可变字符串?什么是不可变字符串?
- 不可变字符串:指的是字符串在内存中占用的存储空间固定,并且存储的内容不能发生变化
- 可变字符串:指的是字符串在内存中占用的存储空间可以不固定,并且存储的内容可以被修改
NSMutalbleString常用方法
对可变字符串增删改查
NSMutableString *strM = [NSMutableString stringWithFormat:@"www.520it.com.520"];
在字符串后面添加一段字符串
[strM appendString:@"/image"]; [strM appendFormat:@"/age is %i", 10]; NSLog(@"strM = %@", strM);
如何删除字符串中的520?
技巧: 在开发中, 我们经常利用rangeOfString和deleteCharactersInRange方法配合起来删除指定的字符串
- 先查找出520在字符串中的位置
NSRange range = [strM rangeOfString:@"520"];
- 删除520
[strM deleteCharactersInRange:range]; NSLog(@"strM = %@", strM);
如何在520前面插入love这个单词
// insertString : 需要插入的字符串 // atIndex: 从哪里开始插入 NSRange range = [strM rangeOfString:@"520"]; [strM insertString:@"love" atIndex:range.location]; NSLog(@"strM = %@", strM);
问题4:如何将字符串中的520替换为530?
答:
- 注意: 如果是调用NSString的字符串替换方法, 不会修改原有字符串, 而是生产一个新的字符串
NSString *newStr =[strM stringByReplacingOccurrencesOfString:@"520" withString:@"530"];
注意:
- 一般情况下OC方法要求传入一个参数如果没有*, 大部分都是枚举
- 一般情况下如果不想使用枚举的值, 可以传入0, 代表按照系统默认的方式处理
/* OccurrencesOfString: 需要替换的字符串 withString: 用什么替换 options: 替换时的搜索方式 range: 搜索的范围 返回值: 代表替换了多少个字符串 */ NSUInteger count = [strM replaceOccurrencesOfString:@"520" withString:@"530" options:0 range:NSMakeRange(0, strM.length)]; NSLog(@"strM = %@", strM); NSLog(@"count = %lu", count);
18.NSMutalbleString练习
理解可变和不可变字符串的区别,和方法的使用
问题1:拼接字符串有几种方法?
答:
需求: 将3个520it拼接在一起, 中间用空格隔开 520it 520it 520it
NSString *subStr = @"520it";
方法一:
// 520it- NSString *newStr = [subStr stringByAppendingString:@" "]; // 520it-520it newStr = [newStr stringByAppendingString:subStr]; // 520it-520it- newStr = [newStr stringByAppendingString:@" "]; // 520it-520-520it newStr = [newStr stringByAppendingString:subStr];
方法二:
- 注意: 在开发中如果需要对字符串进行频繁的操作, 不要使用不可变的字符串
NSString *newStr = [subStr stringByAppendingString:@" "];; for (int i = 0; i < 2; ++i) { newStr = [newStr stringByAppendingString:subStr]; newStr = [newStr stringByAppendingString:@" "]; } // newStr = [newStr stringByReplacingCharactersInRange:NSMakeRange(newStr.length -1 , 1) withString:@""]; newStr = [newStr stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet]]; NSLog(@"newStr = |%@|", newStr);
方法三:
// 创建一个空得字符串
NSMutableString *strM = [NSMutableString string]; for (int i = 0; i < 3; ++i) { // 1.添加一个520it [strM appendString:subStr]; // 2.添加一个空格 [strM appendString:@" "]; } [strM deleteCharactersInRange:NSMakeRange(strM.length - 1, 1)]; NSLog(@"strM = |%@|", strM);