将双引号之间的每个子字符串放入数组中的最佳方法是什么?
例如,如果字符串 (NSString) 是:
@"abcd \"efgh\" ijklm \"no\" p \"qrst\" uvwx \"y\" z"
我希望结果是:
{@"efgh", @"no", @"qrst", @"y"}
作为 NSArray。
将双引号之间的每个子字符串放入数组中的最佳方法是什么?
例如,如果字符串 (NSString) 是:
@"abcd \"efgh\" ijklm \"no\" p \"qrst\" uvwx \"y\" z"
我希望结果是:
{@"efgh", @"no", @"qrst", @"y"}
作为 NSArray。
这应该让你开始:
NSString *str = @"abcd \"efgh\" ijklm \"no\" p \"qrst\" uvwx \"y\" z";
NSMutableArray *target = [NSMutableArray array];
NSScanner *scanner = [NSScanner scannerWithString:str];
NSString *tmp;
while ([scanner isAtEnd] == NO)
{
[scanner scanUpToString:@"\"" intoString:NULL];
[scanner scanString:@"\"" intoString:NULL];
[scanner scanUpToString:@"\"" intoString:&tmp];
if ([scanner isAtEnd] == NO)
[target addObject:tmp];
[scanner scanString:@"\"" intoString:NULL];
}
for (NSString *item in target)
{
NSLog(@"%@", item);
}
一种方法是使用componentsSeparatedByString:
基于"
. 这应该给你一个单词数组,其中的计数应该是奇数。将所有偶数单词过滤到一个数组中。这应该是您想要的数组。
或者看看NSPredicate
。