6
NSString *string  = [myString stringByReplacingOccurrencesOfString:@"<wow>" withString:someString];

私はこのコードを持っています。ここで、アプリのユーザーが2つの異なる文字列を入力し、他の2つの異なる文字列に置き換えたいと仮定します。これを実現するにはどうすればよいですか?プライベートAPIを使用するかどうかは関係ありません。私は、ジェイルブレイクされたプラットフォーム用に開発しています。私のユーザーはまたはを入力しようとしています。これらの文字列の出現箇所を、それぞれの置換される文字列に置き換えたい:)

よろしくお願いします:P

4

4 に答える 4

7

最も単純なソリューションはstringByReplacingOccurrencesOfString2回実行されています。

NSString *string  = [[myString
    stringByReplacingOccurrencesOfString:@"<wow>" withString:someString1]
    stringByReplacingOccurrencesOfString:@"<boo>" withString:someString2];
于 2012-11-17T17:22:52.943 に答える
6

dasblinkenlightとMatthiasの両方の回答が機能しますが、どちらも2つの中間NSStringが作成されます。この操作を頻繁に行わない場合、これは実際には問題ではありませんが、より適切なアプローチは次のようになります。

NSMutableString *myStringMut = [[myString mutableCopy] autorelease];
[myStringMut replaceOccurrencesOfString:@"a" withString:somethingElse];
[myStringMut replaceOccurrencesOfString:@"b" withString:somethingElseElse];
// etc.

NSMutableStringはNSStringサブクラスであるため、使用myStringMutした場合と同じように使用できます。myString

于 2012-11-17T18:15:29.150 に答える
2

文字列置換メソッドをもう一度実行します

NSString *string  = [myString stringByReplacingOccurrencesOfString:@"foo" withString:@"String 1"];
string = [string stringByReplacingOccurrencesOfString:@"bar" withString:@"String 2"];
于 2012-11-17T17:21:47.820 に答える
2

これはSwift3.1でうまく機能します

let str = "hi hello hey"

var replacedStr = (str as NSString).replacingOccurrences(of: "hi", with: "Hi")

replacedStr = (replacedStr as NSString).replacingOccurrences(of: "hello", with: "Hello")

replacedStr = (replacedStr as NSString).replacingOccurrences(of: "hey", with: "Hey")

print(replacedStr) // Hi Hello Hey
于 2017-07-26T13:48:14.293 に答える