关于iphone:NSString搜索另一个字符串的全文

NSString search whole text for another string

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

我有一个搜索字符串"st"。我在下面的记录中查找,以查看是否下面的任何一个包含此搜索字符串,所有记录都应返回一个良好的结果,因为所有记录都具有"st"。

餐厅

稳定的

克尔斯滕

目前我正在做以下工作:

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

在上面的例子中,这只适用于"stable",因为它以"st"开头,而其他2个则失败。如何修改此搜索,使其对所有3项返回OK?

谢谢!!!!


为什么不先谷歌?

字符串包含Objective-C中的字符串

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


我知道这是一条旧线,我认为它可以帮助别人。

- rangeOfString:options:range:方法将允许对字符串进行不区分大小写的搜索,并替换类似'?在您的搜索中为"o"。

1
2
3
4
5
6
7
8
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类引用

有关方法- rangeOfString:options:range:的文档可以在nsstring类引用中找到。


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