【问题标题】:make array out of string with variable number of spaces in Objective-C在Objective-C中用可变数量的空格制作数组
【发布时间】:2010-07-07 04:40:43
【问题描述】:
如果单词之间总是有单个空格,我会使用此代码。由于我在某些单词之间有多个空格,因此在使用 componentsSeparatedBySring 时如何更改我的代码以删除多余的空格。我是 OBjective-C 的新手,因此我们将不胜感激!
这是我的代码:
NSString *myString = @"一二三四五";
NSArray *myArray = [myString componentsSeparatedByString:@" "];
【问题讨论】:
标签:
objective-c
nsstring
nsarray
【解决方案1】:
改用NSScanner:
NSMutableArray *results = [NSMutableArray array];
NSScanner *scanner = [NSScanner scannerWithString:input];
NSCharacterSet *charSet = [NSCharacterSet characterSetWithCharactersInString:@" "];
while ([scanner isAtEnd] == NO)
{
NSString *string;
[scanner scanUpToCharactersFromSet:charSet intoString:&string];
[results addObject:string];
}
【解决方案2】:
+ (NSArray *)componentsInString:(NSString *)string withSeparacterInString:(NSString *)separaterStr
{
if (!string || !separaterStr || [separaterStr length] < 1)
return [NSArray array];
NSMutableArray *arr = [[string componentsSeparatedByCharactersInSet:[NSCharacterSet characterSetWithCharactersInString:separaterStr]] mutableCopy];
[arr removeObject:@""]; // removes all empty components
return arr;
}
NSArray *arr = [Utils componentsInString:@"12 123 \n 14 " withSeparacterInString:@" \n"];