我想在另一个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?
感谢!!!
答案 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
上找到有关方法- rangeOfString:options:range:
的文档