按空格数分割NSString

时间:2011-09-24 04:56:16

标签: objective-c nsstring nsarray

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

NSString* line = @"1 2     3";

我想将NSString分成NSArray这样的值:{@"1", @"2", @"3"}

2 个答案:

答案 0 :(得分:21)

将组件分隔为@" ",并从结果数组中删除@""之类的所有对象。

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

答案 1 :(得分:4)

这应该可以解决问题(假设值不包含空格):

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

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