49 votes

Comment séparer une chaîne de caractères par un espace en Objective-C ?

Supposons que j'ai une chaîne comme celle-ci :

hello world       this may     have lots   of sp:ace or little      space

Je voudrais séparer cette chaîne de caractères de celle-ci :

@"hello", @"world", @"this", @"may", @"have", @"lots", @"of", @"sp:ace", @"or", @"little", @"space"

Merci.

0 votes

Votre recette est ici stackoverflow.com/questions/758212/

3 votes

Je ne vois pas pourquoi cette question est considérée comme "pas une vraie question". L'OP dit ce qui est donné et ce qu'il faut réaliser.

81voto

vikingosegundo Points 30323
NSString *aString = @"hello world       this may     have lots   of sp:ace or little      space";
NSArray *array = [aString componentsSeparatedByCharactersInSet:[NSCharacterSet whitespaceCharacterSet]];
array = [array filteredArrayUsingPredicate:[NSPredicate predicateWithFormat:@"SELF != ''"]];

23voto

danyowdee Points 3284

Je suggère une approche en deux temps :

NSArray *wordsAndEmptyStrings = [yourLongString componentsSeparatedByCharactersInSet:[NSCharacterSet whitespaceCharacterSet]];
NSArray *words = [wordsAndEmptyStrings filteredArrayUsingPredicate:[NSPredicate predicateWithFormat:@"length > 0"]];

23voto

Mohit Popat Points 907

Cela a fonctionné pour moi

NSString * str = @"Hi Hello How Are You ?";
NSArray * arr = [str componentsSeparatedByString:@" "];
NSLog(@"Array values are : %@",arr);

0 votes

Que se passe-t-il si les caractères de la chaîne d'entrée sont séparés par plus d'un espace (comme c'est le cas dans cette question) ?

5voto

Nyx0uf Points 3293

Il est très facile de faire cela avec des blocs, essayez quelque chose comme ceci :

NSString* s = @"hello world       this may     have lots   of space or little      space";
NSMutableArray* ar = [NSMutableArray array];
[s enumerateSubstringsInRange:NSMakeRange(0, [s length]) options:NSStringEnumerationByWords usingBlock:^(NSString* word, NSRange wordRange, NSRange enclosingRange, BOOL* stop){
    [ar addObject:word];
}];

Prograide.com

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.

Powered by:

X