J'ai essayé de me débarrasser des espaces blancs dans un NSString
, mais aucune des méthodes que j'ai essayées n'a fonctionné.
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?
objective-c
string
cocoa
nsstring
marsalal1014
la source
la source
Réponses:
stringByTrimmingCharactersInSet
supprime uniquement les caractères du début et de la fin de la chaîne, pas ceux du milieu.1) Si vous devez supprimer uniquement un caractère donné (par exemple le caractère espace) de votre chaîne, utilisez:
2) Si vous avez vraiment besoin de supprimer un ensemble de caractères (à savoir non seulement le caractère espace, mais tout caractère d'espace blanc comme l'espace, la tabulation, l'espace incassable, etc.), vous pouvez diviser votre chaîne en utilisant le
whitespaceCharacterSet
puis en joignant à nouveau les mots dans une chaîne :Notez que cette dernière solution a l'avantage de gérer tous les caractères d'espacement et pas seulement les espaces, mais est un peu moins efficace que le
stringByReplacingOccurrencesOfString:withString:
. Donc, si vous n'avez vraiment besoin que de supprimer le caractère espace et que vous êtes sûr de ne pas avoir d'autre caractère d'espacement que le caractère espace simple, utilisez la première méthode.la source
Je préfère utiliser des regex comme ceci:
Vous pouvez créer une catégorie sur NSString pour vous simplifier la vie:
}
Voici aussi une méthode de test unitaire là-dessus:
la source
Tâche facile en utilisant
stringByReplacingOccurrencesOfString
la source
Cela peut vous aider si vous rencontrez des
\u00a0
problèmes au lieu de(espace blanc). J'ai eu ce problème lorsque j'essayais d'extraire les numéros de téléphone de contact de l'appareil. J'avais besoin de modifier la chaîne phoneNumber pour qu'elle ne contienne aucun espace.
Quand
yourString
était le numéro de téléphone actuel.la source
yourString.replacingOccurrences(of: "\u{00a0}", with: "")
stringByReplacingOccurrencesOfString remplacera tous les espaces blancs par dans la chaîne non seulement le début et la fin
Utilisation
la source
stringByReplacingOccurrencesOfString
mais donnez un exemple destringByTrimmingCharactersInSet
?la source
C'est pour moi la meilleure façon SWIFT
et le résultat est: ciaociao
Mais le truc est le suivant!
la source
Utilisez ci-dessous marco et supprimez l'espace.
dans un autre fichier, appelez TRIM:
Puisse-t-il vous aider ...
la source
C'est pour supprimer tout espace lorsque vous obtenez du texte à partir de n'importe quel champ de texte, mais si vous souhaitez supprimer l'espace entre la chaîne, vous pouvez utiliser
Il remplacera l'espace vide par aucun espace et le champ vide est pris en charge par la méthode ci-dessous:
la source
la source
Je suggère fortement de placer ceci quelque part dans votre projet:
la source