2011-09-24 12 views
7

空白文字が分からない値を含むNSStringがあります。たとえば:{@"1", @"2", @"3"}NSStringを空白数で分割します。

NSString* line = @"1 2  3"; 

私はそうのような値のNSArrayNSStringを分割したいと思います。

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

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

答えて

21

@" "によって分離された成分を取得し、得られた配列から@""のようなすべてのオブジェクトを削除します。

+0

興味深いことに、私はremoveObjectがremoved * all *の発生を認識しませんでした。ありがとう! –

+0

このソリューションはよりクリーンです。ありがとうございました。 –

+0

Chris Doble、Chris Ledet、ようこそ! – EmptyStack

4

これはトリック(値が空白文字が含まれていないと仮定)を行う必要があります。

NSString* line = @"1 2  3"; 
NSMutableArray *array = (NSMutableArray *)[line componentsSeparatedByString:@" "]; 
[array removeObject:@""]; // This removes all objects like @"" 
関連する問題