Considérez l'exemple suivant :
" Hello this is a long string! "
Je veux le convertir en :
"Hello this is a long string!"
Considérez l'exemple suivant :
" Hello this is a long string! "
Je veux le convertir en :
"Hello this is a long string!"
Utilisez la solution native regexp fournie par hfossli.
Utilisez votre bibliothèque regexp préférée ou utilisez la solution Cocoa-native suivante:
NSString *theString = @" Bonjour c'est une longue chaîne! ";
NSCharacterSet *whitespaces = [NSCharacterSet whitespaceCharacterSet];
NSPredicate *noEmptyStrings = [NSPredicate predicateWithFormat:@"SELF != ''"];
NSArray *parts = [theString componentsSeparatedByCharactersInSet:whitespaces];
NSArray *filteredArray = [parts filteredArrayUsingPredicate:noEmptyStrings];
theString = [filteredArray componentsJoinedByString:@" "];
Les Regex et NSCharacterSet sont là pour vous aider. Cette solution supprime les espaces vides en début et en fin de chaîne, ainsi que les espaces multiples.
NSString *original = @" Bonjour ceci est une longue chaîne! ";
NSString *squashed = [original stringByReplacingOccurrencesOfString:@"[ ]+"
withString:@" "
options:NSRegularExpressionSearch
range:NSMakeRange(0, original.length)];
NSString *final = [squashed stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]];
Lorsque vous affichez final
, vous obtiendrez
"Bonjour ceci est une longue chaîne!"
Exemples de motifs de regex alternatifs :
[ ]+
[ \\t]+
\\s+
La facilité d'extension, les performances, le nombre de lignes de code et le nombre d'objets créés rendent cette solution appropriée.
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.