【发布时间】:2016-04-24 20:30:05
【问题描述】:
我正在对大型内容进行搜索。使用 NSRange 来实现。
range = [textToSearch rangeOfString:searchText options:NSCaseInsensitiveSearch];
然后我像这样检查字符串的存在:
if(range.location != NSNotFound){
//String found
}
现在我只有指定字符串的范围。我想将我的搜索结果显示为:
假设我的内容是这样的:
我是个电影迷。当朋友们想知道 1980 年哪部电影获得了奥斯卡奖,或者谁在《大白鲨》中扮演警察局长时,他们会问我。不过,我的朋友们已经不再问我是否想出去看电影了。
现在我已经搜索了“已停止”
现在我想将我的搜索显示为:
结果:
不过,我的朋友们停止问我是否愿意
我想要搜索结果前后的一些词。我不知道如何实现这一点。
【问题讨论】:
-
通过减去您想要包含的字符数来调整位置。确保执行 MAX(0, newLocation) 以避免变为负数。对长度执行相同的操作,注意不要超过字符串的末尾。
-
如何实现?
-
下一次,展示你的尝试。 SO 不是代码编写服务。
-
@Avi 我已经编写了我尝试过的代码......但我无法继续这就是我问的原因......如果你觉得我想要一项服务,那就不要这样做
-
因此,如果可以,请展示您编写的代码并解释为什么它不起作用。答案是 4 行代码,其中两行是简单的数学表达式。
标签: ios objective-c search nsrange