2012-11-17 19 views
5
NSString *string = [myString stringByReplacingOccurrencesOfString:@"<wow>" withString:someString]; 

私はこのコードを持っています。私のアプリのユーザーが2つの異なる文字列を入力したとします。これを2つの異なる文字列に置き換えたいのですが、どのように達成できますか?プライベートAPIを使用するかどうかは気にしません.Jailbrokenプラットフォーム用に開発しています。私のユーザーはor orを入力します。私はこれらの文字列のいずれかの発生を置き換えたいそれぞれに被置き換え-で文字列:)事前に複数の文字列の出現を他の複数の文字列に置き換える方法[NSString]

ありがとう:P

答えて

6

両方dasblinkenlightさんとマティアスの答えは動作しますが、それらの両方の結果で2つの中間的なNSStringの作成。この操作を頻繁にやっていないのであれば、それは実際問題ではありませんが、より良いアプローチはこのようになります。 NSMutableStringは、NSStringのサブクラスであるので、あなたは、myStringを使用していただろうと

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

その後、myStringMutを使用することができます。

+0

ありがとう、偉大なオールマイティセーバー:Pいいえ、私は本当にそれを意味する多くのありがとう:) – s6luwJ0A3I

+1

何かを気にすることは、somethingElseに "b"が含まれている場合、それらはsomethingElseElseに置き換えられます。時にはこれは大丈夫ですが、時にはそうではありません。そのような状況を避ける必要がある場合は、より洗練されたアプローチが必要です。 –

2

私は単なる文字列の交換方法を再度

NSString *string = [myString stringByReplacingOccurrencesOfString:@"foo" withString:@"String 1"]; 
string = [string stringByReplacingOccurrencesOfString:@"bar" withString:@"String 2"]; 
+0

で私に適しています。ありがとうございました – s6luwJ0A3I

6
を実行します

最も簡単な解決策は、二回stringByReplacingOccurrencesOfStringを実行している:

NSString *string = [[myString 
    stringByReplacingOccurrencesOfString:@"<wow>" withString:someString1] 
    stringByReplacingOccurrencesOfString:@"<boo>" withString:someString2]; 
+0

:-) **優秀な..迅速なインターフェイスでよりスムーズに見える** - '文字列= myString.stringByReplacingOccurrencesOfString(" "、withString:someString1).stringByReplacingOccurrencesOfString(" "、withString:someString2)' –

0

これは私がそのことを考えたが、その後、私はそれをテストしたとき、私は私は本当にあなたの素晴らしい男のようなproffesionalsを求めて検討すべきであると感じたスウィフト3.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 
関連する問題