可变字符串NSMutableString是可以变化的字符串,它不像NSString那样每次都需要赋值给新的对象。
1.可变字符串的创建
//可变字符串是自身变化,返回值是void,不用在返回给其他的对象
//********1.可变字符串的创建
//1.1不能通过字面量创建,因为它是一个常量,不能改变
// NSMutableString *str = @"龙叔叔";
NSMutableString *str = [NSMutableString string];//先创建一个可变字符串
str.string = @"龙叔叔";//然后通过setter的方法初始化
NSLog(@"%@",str);
//NSString *strx = str.string; 可变字符串没有get方法
//1.2通过类方法的格式化创建
NSMutableString *str1 = [NSMutableString stringWithFormat:@"龙叔叔"];
NSLog(@"%@",str1);
//1.3通过对象方法
NSMutableString *str2 = [[NSMutableString alloc] initWithFormat:@"hello"];
NSLog(@"%@",str2);
//1.4创建一点容量的可变字符串 capacity:容量
NSMutableString *str3 = [NSMutableString stringWithCapacity:100];
2.增加字符串的方法 不用在前面加stringby
//********2.增加字符串的方法 不用在前面加stringby
[str3 appendString:@"today"];
NSLog(@"%@",str3); //打印today
//********3.在索引前插入字符串
[str3 insertString:@"is" atIndex:5]; //不能写6,估计内部是通过\0判断的
NSLog(@"%@",str3); //打印todayis
4.删除索引区间的字符串
//********4.删除索引区间的字符串
NSRange range = {5,2};
[str3 deleteCharactersInRange:range];
NSLog(@"%@",str3); //打印today
5.替换某个区间
//********5.替换某个区间
range = [str3 rangeOfString:@"day"];
[str3 replaceCharactersInRange:range withString:@"morrow"];
NSLog(@"%@",str3); //打印tomorrow
//********6.用新字符串代替旧字符串,在某个特定的范围内,返回一个替换多少次的个数
range = (NSRange){0,str3.length};
long a = [str3 replaceOccurrencesOfString:@"o" withString:@"d" options:NSLiteralSearch range:range];
NSLog(@"%ld",a); //打印3
NSLog(@"%@",str3); //打印tdmdrrdw