2011-09-24 86 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 != ''"]];