2

将双引号之间的每个子字符串放入数组中的最佳方法是什么?

例如,如果字符串 (NSString) 是:

@"abcd \"efgh\" ijklm \"no\" p \"qrst\" uvwx \"y\" z"

我希望结果是:

{@"efgh", @"no", @"qrst", @"y"}

作为 NSArray。

4

2 回答 2

6

这应该让你开始:

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);
}
于 2012-05-21T04:47:52.290 回答
4

一种方法是使用componentsSeparatedByString:基于". 这应该给你一个单词数组,其中的计数应该是奇数。将所有偶数单词过滤到一个数组中。这应该是您想要的数组。

或者看看NSPredicate

于 2012-05-21T04:41:17.117 回答