【问题标题】:Objective C: Get Substring between Double Quotes目标 C:获取双引号之间的子字符串
【发布时间】:2012-05-21 04:15:22
【问题描述】:

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

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

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

我希望结果是:

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

作为 NSArray。

【问题讨论】:

  • 我猜同样的问题会以不同的方式被问到很多时间..!!先尝试搜索。
  • @"" 中有值的原因是什么,您需要字符串值?
  • 试试下面的帖子可能对您在目标 c stackoverflow.com/questions/6825834/… 中的字符串拆分有帮助,欢迎!
  • 我不知道 componentsSeparateByString: 是否接受转义字符,但值得一试。
  • 它确实接受它们,为什么不呢?

标签: objective-c ios xcode nsstring substring


【解决方案1】:

这应该让你开始:

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);
}

【讨论】:

    【解决方案2】:

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

    另外看看NSPredicate

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-10-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-20
      • 1970-01-01
      • 2016-03-24
      相关资源
      最近更新 更多