NSStringの特定のインデックスの文字を置き換える方法を探しています。例えばNSStringの特定のインデックスの文字を置換する
:私は、文字列は次のようになりますように、「A」で第3回「*」を置き換えたいmyString = @"******";
:myString = @"**A***";
どのように私はこれを達成することができますか?二つの選択肢が本当にあります
NSStringの特定のインデックスの文字を置き換える方法を探しています。例えばNSStringの特定のインデックスの文字を置換する
:私は、文字列は次のようになりますように、「A」で第3回「*」を置き換えたいmyString = @"******";
:myString = @"**A***";
どのように私はこれを達成することができますか?二つの選択肢が本当にあります
これを試してみてください。もちろん
char *str = (char *)[myString UTF8String];
str[2] = 'A';
myString = [NSString stringWithUTF8String:str];
は、あなたがのmyStringは、少なくとも持っていることが確実でなければなりません:あなたは少しCを使用して気にしない場合は、このようなものを使用
NSString *str = @"*******";
str = [str stringByReplacingCharactersInRange:NSMakeRange(3, 1) withString:@"A"];
NSLog(@"%@",str);
事前に
おかげ。
NSStringは読み取り専用なので、実際に変更できるNSMutableStringを取得するにはNSStringにmutableCopy
を呼び出し、NSMutableStringでreplaceCharactersInRange:withString:
を呼び出してその文字を置き換える必要があります。これは、文字列を複数回変更したい場合に、より効率的です。
また、文字を置き換えて新しいNSStringを返すNSStringにはstringByReplacingCharactersInRange:withString:
メソッドがあります。これは単一の変更に対してより効率的ですが、それぞれの置換に対して新しいNSStringを作成する必要があります。
ありがとうございました!私は私の問題を解決しました! – niclas
これを行う前に3文字。これ以外にも、これは非常に高速で効率的な方法です。
iOSでは動作しますが、MacOSでは動作しません。私はMacOSが新たに割り当てられた文字列を返すと信じている – Borzh
あなたの文字列が「テスト」されていて、最初の文字「t」をしたい「*」に置き換える必要がある場合を実行し、Go呼び出し方法
[self string:yourString ByReplacingACharacterAtIndex:0 byCharacter:@"?"]
よりも、このサンプル方法
-(NSString *)string:(NSString*)string ByReplacingACharacterAtIndex:(int)i byCharacter:(NSString*)StringContainingAChar{
return [string stringByReplacingCharactersInRange:NSMakeRange(i, 1) withString:StringContainingAChar];
}
をお試しください
応答からの迅速な延長による私の貢献:
extension NSString{
func replacingACharacterAtIndex(pIndex : Int, pChar : Character) -> NSString{
return self.stringByReplacingCharactersInRange(NSRange(location: pIndex, length: 1), withString: String(pChar))
}
}
可能な複製http://stackoverflow.com/questions/7940104/replace-character-in-string – Emil
このリンクを試すことができます。あなたと同じ問題があります。 http://www.iphonedevsdk.com/forum/iphone-sdk-development/76235-nsstring-how-replace-character-certain-index.html – Sarah