替换字符串中的字符串列表(Objective-c 2.0)
问题描述:
例如,我想用@“z”替换@“abcdabcd”中所有出现的@“a”和@“b”。目前,我正在做这个反复调用stringByReplacingOccurencesOfString:withString:
:替换字符串中的字符串列表(Objective-c 2.0)
NSString *s1 = @"abcdabcd";
NSString *s2 = [[s1 stringByReplacingOccurencesOfString:@"a" withString:@"z"]
stringByReplacingOccurencesOfString:@"b" withString:@"z"];
有什么更好的办法?我没有找到任何类似的方法,需要一个字符串数组来替换。
答
您可以使用正则表达式:
NSString *s2 =
[s1 stringByReplacingOccurrencesOfString:@"[ab]"
withString:@"z"
options:NSRegularExpressionSearch
range:NSMakeRange(0, s1.length)];
答
还有的NSMutableString的replaceOccurrencesOfString:withString:options:range:
方法(所以你不必创建每次更换打电话给你想使一个新的NSString对象)。为您链接的文档。
(如果您的目标是OS X 10.7 +/iOS 4.0+)。 – Wevah 2011-12-20 00:01:51