Quelle est la meilleure façon de remplacer un caractère est une chaîne dans Objective-C pour iPhone SDK?
Vous pouvez utiliser la méthode
- (NSSsortingng *)ssortingngByReplacingOccurrencesOfSsortingng:(NSSsortingng *)target withSsortingng:(NSSsortingng *)replacement
… pour obtenir une nouvelle chaîne avec une sous-chaîne remplacée (voir la documentation NSSsortingng
pour les autres)
Exemple d’utilisation
NSSsortingng *str = @"This is a ssortingng"; str = [str ssortingngByReplacingOccurrencesOfSsortingng:@"ssortingng" withSsortingng:@"duck"];
NSSsortingng
objects NSSsortingng
sont immuables (ils ne peuvent pas être modifiés), mais il existe une sous-classe mutable, NSMutableSsortingng
, qui vous offre plusieurs méthodes pour remplacer des caractères dans une chaîne. C’est probablement votre meilleur pari.
Si vous souhaitez un remplacement de plusieurs chaînes:
NSSsortingng *s = @"foo/bar:baz.foo"; NSCharacterSet *doNotWant = [NSCharacterSet characterSetWithCharactersInSsortingng:@"/:."]; s = [[s componentsSeparatedByCharactersInSet: doNotWant] componentsJoinedBySsortingng: @""]; NSLog(@"%@", s); // => foobarbazfoo
Il est également possible de remplacer des chaînes avec ssortingngByReplacingCharactersInRange: withSsortingng:
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
Le problème existe dans les anciennes versions sur iOS. au plus tard, la droite à gauche fonctionne bien. Ce que j’ai fait, c’est comme suit:
Je vérifie d’abord la version iOS:
if (![self compareCurVersionTo:4 minor:3 point:0])
Que:
// set RTL on the start on each line (except the first) myUITextView.text = [myUITextView.text ssortingngByReplacingOccurrencesOfSsortingng:@"\n" withSsortingng:@"\u202B\n"];
NSSsortingng *ssortingngreplace=[yourSsortingng ssortingngByReplacingOccurrencesOfSsortingng:@"search" withSsortingng:@"new_ssortingng"];