NSString 是NSObject的子类
NSString是不可变的,意思是他声明的对象我们不可以改变,如果要改变,可以使用它的子类:NSMutableString
你可以使用类方法:stringWithCapacity来创建一个新的NSMutableString,声明如下:
* (id) stringWithCapacity: (unsigned) capacity:
可按如下方法声明一个新的可变字符串:
NSString *str1;
Str1 = [NSMutableString stringWithCapacity:42];
可以使用appendString或appendFormat来对可变字符串操作:
- (void)appendString: (Nsstring *) aString;
- (void) appendFormat: (NSString *) Format;
appendString 接受参数aString,然后将其复制到接受对象的末尾。
appendFormat类似,他将格式化的字符串附加在接受对象的末尾,而不是创建新的对象。
EXP:
NSMutableString *string;
string = [NSMutableString stringWithcapacity:50];
[string appendString: @”hello,there”];
[string appendFormat: @”human %d!”, 39];
这段代码的string最后被赋值为:hello,there human 39!
你还可以使用deleteCharactersInRange:方法来删除字符串中的字符:
- (void) deleteCharactersInRange: (NSRange) range;
通常将deleteCharactersInRange: 和rangeOfString:连在一起使用,NSMutableString可以使用NSString的全部功能,包括rangeOfString:、字符串比较和其他任何功能。
例如,你列了一个所有朋友列表,你突然又不喜欢Jack了,想把他从朋友列表里删除:
//朋友列表初始化
NSMutableString *friends;
friends = [NSMutableString stringWithcapacity: 50];
[friends appendString: @”level fang jack even”];
//找到jack并且删除
NSRange jackRange;
jackRange = [friends rangeOfString: @”jack”];
jackRange.length++; //eat the space that follows
[friends deleteCharactersInRange: jackRange];