NSString搜索另一个字符串的全文

时间:2011-09-27 18:36:29

标签: iphone nsstring compare

我想在另一个NSString中搜索NSString,这样即使第二个NSString没有从第一个NSString开始,也会找到结果,例如:

例如:我有一个搜索字符串“st”。我查看以下记录,看看下面的任何一个是否包含这个搜索字符串,所有这些都应该返回一个好的结果,因为它们都有“st”。

餐厅

稳定

Kirsten

目前我正在做以下事情:

NSComparisonResult result = [selectedString compare:searchText options:(NSCaseInsensitiveSearch|NSDiacriticInsensitiveSearch) range:NSMakeRange(0, [searchText length])];

这仅适用于上面示例中的“stable”,因为它以“st”开头而另一个则失败2.如何修改此搜索以使其对所有3都返回ok?

感谢!!!

3 个答案:

答案 0 :(得分:11)

为什么不先谷歌?

String contains string in objective-c

NSString *string = @"hello bla bla";
if ([string rangeOfString:@"bla"].location == NSNotFound) {
  NSLog(@"string does not contain bla");
} else {
  NSLog(@"string contains bla!");
}

答案 1 :(得分:1)

比较用于测试小于/等于/大于。您应该使用-rangeOfString:或其中一种兄弟方法,例如-rangeOfString:options:range:locale:

答案 2 :(得分:1)

我知道这是一个老线程,认为它可以帮助某人。

- rangeOfString:options:range:方法允许对字符串进行不区分大小写的搜索,并在搜索中将“ö”等字母替换为“o”。

NSString *string = @"Hello Bla Bla";
NSString *searchText = @"bla";
NSUInteger searchOptions = NSCaseInsensitiveSearch | NSDiacriticInsensitiveSearch;
NSRange searchRange = NSMakeRange(0, string.length);
NSRange foundRange = [string rangeOfString:searchText options:searchOptions range:searchRange];
if (foundRange.length > 0) {
    NSLog(@"Text Found.");
}

有关更多比较选项NSString Class Reference

可以在NSString Class Reference

上找到有关方法- rangeOfString:options:range:的文档