搜索NSString是否包含值
我有一些字符串值由几个字符构成,我想检查它们是否存在于另一个NSString中,而不区分大小写和空格。
示例代码:
NSString *me = @"toBe" ;
NSString *target=@"abcdetoBe" ;
//than check if me is in target.
在这里我会变得true
因为me
存在于target
。 我如何检查这种情况?
我已阅读如何检查一个字符串是否包含Objective-C中的另一个字符串? 但它的大小写敏感,我需要找到不区分大小写。
使用选项NSCaseInsensitiveSearch
和rangeOfString:options:
NSString *me = @"toBe" ;
NSString *target = @"abcdetobe" ;
NSRange range = [target rangeOfString: me options: NSCaseInsensitiveSearch];
NSLog(@"found: %@", (range.location != NSNotFound) ? @"Yes" : @"No");
if (range.location != NSNotFound) {
// your code
}
NSLog输出:
发现:是的
注意:我更改了目标以证明不区分大小写的搜索有效。
选项可以一起“或”,包括:
-(BOOL)substring:(NSString *)substr existsInString:(NSString *)str {
if(!([str rangeOfString:substr options:NSCaseInsensitiveSearch].length==0)) {
return YES;
}
return NO;
}
用法:
NSString *me = @"toBe";
NSString *target=@"abcdetoBe";
if([self substring:me existsInString:target]) {
NSLog(@"It exists!");
}
else {
NSLog(@"It does not exist!");
}
与iOS8的发布一样,Apple为NSString
添加了一个名为localizedCaseInsensitiveContainsString
的新方法。 这将完全做你想做的事情:
迅速:
let string: NSString = "ToSearchFor"
let substring: NSString = "earch"
string.localizedCaseInsensitiveContainsString(substring) // true
Objective-C的:
NSString *string = @"ToSearchFor";
NSString *substring = @"earch";
[string localizedCaseInsensitiveContainsString:substring]; //true
链接地址: http://www.djcxy.com/p/73995.html
上一篇: search if NSString contains value
下一篇: iPhone: find one string in another with case insensetive