Objective-C 的可变字符串 NSMutableString

来源:互联网 发布:发帖软件破解版 编辑:程序博客网 时间:2024/05/18 00:18

 

 NSString NSObject的子类

NSString是不可变的,意思是他声明的对象我们不可以改变,如果要改变,可以使用它的子类:NSMutableString

 

你可以使用类方法:stringWithCapacity来创建一个新的NSMutableString,声明如下:


* (id) stringWithCapacity: (unsigned) capacity:

 

可按如下方法声明一个新的可变字符串:

NSString *str1;

Str1 = [NSMutableString stringWithCapacity:42];

 

可以使用appendStringappendFormat来对可变字符串操作:

  - voidappendString:(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:方法来删除字符串中的字符:

- voiddeleteCharactersInRange: (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];

 

 

 

 

 

 

 

原创粉丝点击