2011-09-24 26 views
7

Ho uno NSString che contiene alcuni valori separati da un numero sconosciuto di caratteri di spaziatura. Per esempio:Split NSString per numero di spazi bianchi

NSString* line = @"1 2  3"; 

Vorrei dividere la NSString in un NSArray di valori in questo modo: {@"1", @"2", @"3"}.

risposta

21

garantita componenti separati da @" " e rimuovere tutti gli oggetti come @"" dalla matrice risultante.

NSString* line = @"1 2  3"; 
NSMutableArray *array = (NSMutableArray *)[line componentsSeparatedByString:@" "]; 
[array removeObject:@""]; // This removes all objects like @"" 
+0

Interessante; Non mi sono reso conto che 'removeObject' ha rimosso * tutte * le occorrenze. Grazie! –

+0

Questa soluzione è più pulita. Grazie. –

+0

Chris Doble, Chris Ledet, benvenuto! – EmptyStack

4

Questo dovrebbe fare il trucco (assumendo che i valori non contengono spazi bianchi):

// Gives us [@"1", @"2", @"", @"", @"", @"", @"3"]. 
NSArray *values = [line componentsSeparatedByCharactersInSet: 
    [NSCharacterSet whitespaceCharacterSet]]; 

// Remove the empty strings. 
values = [values filteredArrayUsingPredicate: 
    [NSPredicate predicateWithFormat:@"SELF != ''"]]; 
Problemi correlati