2011-12-19 122 views
2

例如,我想用@“z”替换@“abcdabcd”中所有出现的@“a”和@“b”。目前,我正在做这个反复调用stringByReplacingOccurencesOfString:withString:替换字符串中的字符串列表(Objective-c 2.0)

NSString *s1 = @"abcdabcd"; 
NSString *s2 = [[s1 stringByReplacingOccurencesOfString:@"a" withString:@"z"] 
       stringByReplacingOccurencesOfString:@"b" withString:@"z"]; 

有什么更好的办法?我没有找到任何类似的方法,需要一个字符串数组来替换。

回答

6

您可以使用正则表达式:

NSString *s2 = 
[s1 stringByReplacingOccurrencesOfString:@"[ab]" 
           withString:@"z" 
           options:NSRegularExpressionSearch 
            range:NSMakeRange(0, s1.length)]; 
+3

(如果您的目标是OS X 10.7 +/iOS 4.0+)。 – Wevah 2011-12-20 00:01:51