2011-09-24 89 views
7

我有一個NSString,其中包含由未知數量的空白字符分隔的一些值。例如:按空白字符數拆分NSString

NSString* line = @"1 2  3"; 

我想的NSString分成值的NSArray像這樣:{@"1", @"2", @"3"}

回答

21

@" "分離的組分,並從所得到的數組中刪除像@""所有對象。

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

有趣;我沒有意識到'removeObject'刪除*所有*發生。謝謝! –

+0

此解決方案更清潔。謝謝。 –

+0

Chris Doble,Chris Ledet,歡迎光臨! – EmptyStack

4

這應該做的伎倆(假設值不包含空白):

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

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