【问题标题】:Multiple Substrings in String字符串中的多个子字符串
【发布时间】:2011-07-01 14:16:32
【问题描述】:

我正在开发一个显示来自网站的 6 张图片的应用。这些图片随着时间的推移而变化,所以我提取了该网站的源代码,并设法用此代码提取了 6 张图片中的第一张:

NSError *error = nil;
NSString *deviantStringPopular;
deviantStringPopular = [NSString stringWithContentsOfURL:[NSURL     URLWithString:@"http://browse.deviantart.com/?order=24"]
                                         encoding:NSISOLatin1StringEncoding
                                            error:&error];
NSString *popularContent;
NSRange popularURLRange1 = [deviantStringPopular rangeOfString:@"super_img=\""];
NSRange popularURLRange2 = [deviantStringPopular rangeOfString:@"\" super_w"];
int lengt = popularURLRange2.location - popularURLRange1.location -     popularURLRange1.length;
int location = popularURLRange1.location + popularURLRange1.length;
NSRange endRange;
endRange.location = location;
endRange.length = lengt;
popularContent = [deviantStringPopular substringWithRange:endRange];
NSLog(@"%@", popularContent);

问题是,其他 5 张图片的 URL 位于与第一个相同的子字符串之间。 那么第一个图像的 URL 是否有可能在成功加载后被忽略,而第二个图像的 URL 加载并存储在不同的变量下等等?

提前致谢

【问题讨论】:

  • 请提及相关标签(如cocoa)
  • 总的旁注,但是关于版权作品讨论的 SO 指南是什么?

标签: objective-c image loops web substring


【解决方案1】:

要从字符串中获取 6 个 URL 并将它们加载到不同的变量中,您可以尝试使用循环。在每次迭代中,在找到子字符串并将其存储到变量中之后,从字符串的开头到您找到的子字符串的结尾创建一个范围。您可以使用stringByReplacingCharactersInRange 删除字符串中已经搜索过的部分,以便下次在字符串中搜索子字符串时,它会找到下一个 URL。

【讨论】:

    【解决方案2】:

    如果您知道如何使用 RegEx,则更简单的解决方案可能是使用 RegexKit。那么每个 URL 都可以只是一个捕获组。

    【讨论】:

    • 呵呵,还没听说过,我对 Objective C 还很陌生。谢谢你的建议,我会研究一下
    猜你喜欢
    • 1970-01-01
    • 2016-09-10
    • 1970-01-01
    • 2017-04-30
    • 2015-11-18
    • 1970-01-01
    • 1970-01-01
    • 2019-06-26
    相关资源
    最近更新 更多