Supprimer tous les espaces de NSString
J'ai été d'essayer de se débarrasser des espaces blancs dans un NSString
, mais aucune des méthodes que j'ai essayé de travaillé.
J'ai "this is a test"
et je veux obtenir "thisisatest"
.
J'ai utilisé whitespaceCharacterSet
, qui est censé éliminer les espaces blancs.
NSString *search = [searchbar.text stringByTrimmingCharactersInSet:
[NSCharacterSet whitespaceCharacterSet]];
mais j'ai continué à obtenir la même chaîne avec des espaces. Des idées?
- Il n'y a pas un moyen simple, mais ce lien a d'excellentes réponses - stackoverflow.com/questions/758212/...
- Mais, pas de réponses =)
Vous devez vous connecter pour publier un commentaire.
stringByTrimmingCharactersInSet
seulement supprime les caractères à partir du début et de la fin de la chaîne, pas ceux dans le milieu.1) Si vous avez besoin de supprimer uniquement un caractère donné (disons le caractère espace) à partir de votre chaîne, utilisez:
2) Si vous avez vraiment besoin de supprimer un jeu de caractères (à savoir non seulement le caractère d'espace, mais tout blanc, comme l'espace, la tabulation, incassable et de l'espace, etc), vous pouvez diviser votre chaîne à l'aide de la
whitespaceCharacterSet
puis en rejoignant les mots de nouveau dans une chaîne:Notez que cette dernière solution a l'avantage de traiter chaque caractère d'espacement et pas seulement des espaces, mais est un peu moins efficace que le
stringByReplacingOccurrencesOfString:withString:
. Donc, si vous avez vraiment besoin de supprimer le caractère d'espace et que vous êtes sûr que vous n'aurez pas d'autre espace que celui de la plaine de l'espace de char, d'utiliser la première méthode.Je préfère utiliser des regex comme ceci:
Vous pouvez faire vous-même une catégorie sur NSString pour rendre la vie encore plus facile:
}
Ici est une unité de test de la méthode sur elle aussi:
Tâche facile à l'aide de
stringByReplacingOccurrencesOfString
Cela peut vous aider si vous rencontrez des
\u00a0
en place de(whitespace). J'ai eu ce problème quand j'ai essayé d'extraire de l'Appareil Numéros de Téléphone de Contact. J'ai dû modifier le numéro de chaîne, donc il a pas d'espace en elle.
Quand
yourString
était le numéro de téléphone actuel.yourString.replacingOccurrences(of: "\u{00a0}", with: "")
stringByReplacingOccurrencesOfString remplacera tous, dans l'espace blanc de la chaîne, non seulement le départ et de fin
Utilisation
stringByReplacingOccurrencesOfString
mais donner un exemple destringByTrimmingCharactersInSet
?C'est pour moi la meilleure façon de SWIFT
et le résultat est : ciaociao
Mais le truc, c'est cela!
Utiliser en dessous de marco et de supprimer l'espace.
dans un autre fichier d'appel de GARNITURE :
Peut-il vous aider à...
Qui est pour la suppression de tout l'espace qui est quand vous arriver de texte à partir de n'importe quel champ de texte, mais si vous souhaitez supprimer l'espace entre la chaîne de caractères que vous pouvez utiliser
Il remplacera l'espace vide avec un pas d'espace et de champ vide est pris en charge par la méthode ci-dessous:
Je vous suggère fortement de placer quelque part dans votre projet: