web-dev-qa-db-fra.com

Supprimer des caractères de NSString?

NSString *myString = @"A B C D E F G";

Je veux supprimer les espaces, donc la nouvelle chaîne serait "ABCDEFG".

94
Raju

Vous pouvez utiliser:

NSString *stringWithoutSpaces = [myString 
   stringByReplacingOccurrencesOfString:@" " withString:@""];
278
Tom Jefferys

Si vous souhaitez prendre en charge plusieurs espaces à la fois ou n'importe quel espace, procédez comme suit:

NSString* noSpaces =
    [[myString componentsSeparatedByCharactersInSet:[NSCharacterSet whitespaceCharacterSet]]
                           componentsJoinedByString:@""];
78
Jim Dovey

Tiré de NSString

stringByReplacingOccurrencesOfString:withString:

Renvoie une nouvelle chaîne dans laquelle toutes les occurrences d'une chaîne cible dans le récepteur sont remplacées par une autre chaîne donnée.

- (NSString *)stringByReplacingOccurrencesOfString:(NSString *)target withString:(NSString *)replacement

Paramètres

cible

The string to replace.

remplacement

The string with which to replace target.

Valeur de retour

Une nouvelle chaîne dans laquelle toutes les occurrences de cible dans le récepteur sont remplacées par remplacement.

11
visakh7

Tout ce qui précède fonctionne bien. Mais la bonne méthode est la suivante:

yourString = [yourString stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet]];

Cela fonctionnera comme une méthode TRIM. Il supprimera tous les espaces avant et arrière.

Merci

11
Mitesh Khatri

si la chaîne est mutable, vous pouvez la transformer en place en utilisant le formulaire suivant:

[string replaceOccurrencesOfString:@" "
                        withString:@""
                           options:0
                             range:NSMakeRange(0, string.length)];

ceci est également utile si vous souhaitez que le résultat soit une instance mutable d'une chaîne d'entrée:

NSMutableString * string = [concreteString mutableCopy];
[string replaceOccurrencesOfString:@" "
                        withString:@""
                           options:0
                             range:NSMakeRange(0, string.length)];
6
justin

Tu peux essayer ça

- (NSString *)stripRemoveSpaceFrom:(NSString *)str {
    while ([str rangeOfString:@"  "].location != NSNotFound) {
        str = [str stringByReplacingOccurrencesOfString:@" " withString:@""];
    }
    return str;
}

Espérons que cela va vous aider.

3
Kamleshwar