Quelle est la meilleure façon de remplacer un caractère est une chaîne dans Objective-C pour iPhone SDK?Remplacement de chaîne dans Objective-C
Répondre
Vous pouvez utiliser la méthode
- (NSString *)stringByReplacingOccurrencesOfString:(NSString *)target
withString:(NSString *)replacement
... pour obtenir une nouvelle chaîne avec une sous-chaîne remplacé (Voir NSString
documentation pour les autres)
Exemple d'utilisation
NSString *str = @"This is a string";
str = [str stringByReplacingOccurrencesOfString:@"string"
withString:@"duck"];
NSString
Les objets sont immuables (ils ne peuvent pas être modifiés), mais il existe une sous-classe modifiable, NSMutableString
, qui vous propose plusieurs méthodes de remplacement des caractères dans une chaîne. C'est probablement votre meilleur pari.
Le problème existe dans les anciennes versions sur iOS. dans le dernier, le droit-à-gauche fonctionne bien. Ce que je l'ai fait, est comme suit:
d'abord je vérifier la version iOS:
if (![self compareCurVersionTo:4 minor:3 point:0])
Than:
// set RTL on the start on each line (except the first)
myUITextView.text = [myUITextView.text stringByReplacingOccurrencesOfString:@"\n"
withString:@"\u202B\n"];
Si vous voulez plusieurs remplacement de chaîne:
NSString *s = @"foo/bar:baz.foo";
NSCharacterSet *doNotWant = [NSCharacterSet characterSetWithCharactersInString:@"/:."];
s = [[s componentsSeparatedByCharactersInSet: doNotWant] componentsJoinedByString: @""];
NSLog(@"%@", s); // => foobarbazfoo
Il est également possible de remplacer la chaîne par stringByReplacingCharactersInRange: 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
NSString *stringreplace=[yourString stringByReplacingOccurrencesOfString:@"search" withString:@"new_string"];
Veuillez utiliser le lien [edit] pour expliquer comment ce code fonctionne et ne donnez pas simplement le code, car une explication est plus susceptible d'aider les futurs lecteurs. Voir aussi [réponse]. [source] (http://stackoverflow.com/users/5244995) –
- 1. remplacement de chaîne
- 2. Analyseur AMF0 dans ObjectiveC
- 3. Remplacement de la chaîne Oracle
- 4. Remplacement de la sous-chaîne dans une chaîne
- 5. remplacement regex dans la chaîne java
- 6. Solution de remplacement de chaîne SQL
- 7. problème de remplacement de chaîne JavaScript
- 8. C# Chaîne de remplacement utilisant Regex
- 9. Méthode de remplacement de chaîne dans RPG IV
- 10. RegEx et Replace chaîne de remplacement
- 11. Google appengine remplacement de la chaîne dans le fichier modèle
- 12. C remplacement # chaîne, ne fonctionne pas
- 13. Chaîne Java Remplacement des caractères spéciaux
- 14. Référence du langage de programmation: remplacement de chaîne
- 15. Remplacement de chaîne insensible à la casse en JavaScript?
- 16. Symbole de remplacement dans Ruby
- 17. Remplacement du code de remplacement Eclipse non mis à jour
- 18. Recherche et remplacement de jetons de chaîne dans un fichier en C++ en utilisant l'API win32
- 19. Le moment de l'appel de la méthode de la super classe est-il important dans ObjectiveC?
- 20. remplacement de chaîne dans la page créée à partir du modèle
- 21. Remplacement d'un DateTime.MinValue dans un DataGridView
- 22. Remplacement de l'image de remplacement actuelle avec la bibliothèque JavaScript
- 23. Aider avec le code GCC et ObjectiveC et Cygwin
- 24. Remplacement d'occurrences de chaînes
- 25. Remplacement du volet de l'explorateur dans Windows?
- 26. Remplacement de la valeur XML dans XSLT
- 27. Remplacement de body.onload dans un contrôle utilisateur
- 28. Remplacement de DLL dans Windows Installer Project
- 29. remplacement de signal.alarm dans Windows [Python]
- 30. Styles de remplacement définis dans generic.xaml
Je pensais que le point d'avoir NSString et une sous-classe NSMutableString était parce qu'une instance de NSString est * * inchangeable. Bien que - comme toute personne sensée, je préférerais avoir des canards que des ficelles tous les jours - le fait que vous venez d'écraser le contenu de «str» m'a fait perdre la tête. – ele
Mais je suppose que l'adresse de 'str' a changé dans le processus – Colas
il ne change pas. str contient maintenant une toute nouvelle chaîne. stringByReplacingOccurencesOfString ne mute pas la chaîne. Il retourne simplement une nouvelle chaîne. –