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 NSStringDokumentation für andere)
Beispiel Verwendung
NSString *str = @"This is a string";
str = [str stringByReplacingOccurrencesOfString:@"string"
withString:@"duck"];
strgeändert
NSStringObjekte sind unveränderlich (sie können nicht geändert werden), aber es gibt eine veränderbare Unterklasse, NSMutableStringdie 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.