2011-12-19 16 views
2

たとえば、@ "abcdabcd"の@ "a"と@ "b"を@ "z"に置き換えたいとします。より良い方法は何文字列の文字列のリストを置換する(Objective-c 2.0)

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

:私は現在、繰り返しstringByReplacingOccurencesOfString:withString:に呼ばれると、これをやっていますか?私は置き換えるために文字列の配列を取る類似のメソッドは見つかりませんでした。

答えて

6

あなたは正規表現を使用することができます。

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

(OS X 10.7 +/iOS 4.0+をターゲットにしている場合) – Wevah

3

はNSMutableStringのreplaceOccurrencesOfString:withString:options:range:方法は、(そう、あなたがしたい呼び出して、すべての交換のための新しいNSStringのオブジェクトを作成する必要はありません)もあります。あなたのためにリンクされたドキュメンテーション。