Antworten:
Sie könnten die Methode verwenden
- (NSString *)stringByReplacingOccurrencesOfString:(NSString *)target
withString:(NSString *)replacement
... um einen neuen String mit einem ersetzten Teilstring zu erhalten (siehe NSString
Dokumentation für andere)
Beispiel Verwendung
NSString *str = @"This is a string";
str = [str stringByReplacingOccurrencesOfString:@"string"
withString:@"duck"];
str
geändert
NSString
Objekte sind unveränderlich (sie können nicht geändert werden), aber es gibt eine veränderbare Unterklasse, NSMutableString
die Ihnen verschiedene Methoden zum Ersetzen von Zeichen innerhalb einer Zeichenfolge bietet. Es ist wahrscheinlich die beste Wahl.
Wenn Sie mehrere Zeichenfolgen ersetzen möchten:
NSString *s = @"foo/bar:baz.foo";
NSCharacterSet *doNotWant = [NSCharacterSet characterSetWithCharactersInString:@"/:."];
s = [[s componentsSeparatedByCharactersInSet: doNotWant] componentsJoinedByString: @""];
NSLog(@"%@", s); // => foobarbazfoo
Es ist auch möglich, Zeichenfolgen durch stringByReplacingCharactersInRange zu ersetzen: withString:
for (int i = 0; i < card.length - 4; i++) {
if (![[card substringWithRange:NSMakeRange(i, 1)] isEqual:@" "]) {
NSRange range = NSMakeRange(i, 1);
card = [card stringByReplacingCharactersInRange:range withString:@"*"];
}
} //out: **** **** **** 1234
Das Problem besteht in alten Versionen unter iOS. Spätestens von rechts nach links funktioniert das gut. Was ich getan habe, ist wie folgt:
Zuerst überprüfe ich die iOS-Version:
if (![self compareCurVersionTo:4 minor:3 point:0])
Als:
// set RTL on the start on each line (except the first)
myUITextView.text = [myUITextView.text stringByReplacingOccurrencesOfString:@"\n"
withString:@"\u202B\n"];
NSString *stringreplace=[yourString stringByReplacingOccurrencesOfString:@"search" withString:@"new_string"];
str
überschrieben haben, umgehauen.