iPhone: find one string in another with case insensetive
我的问题类似于如何在Objective-C中检查一个字符串是否包含另一个字符串?
如何检查字符串(nsstring)是否包含另一个较小的字符串,但忽略大小写?
1 | NSString *string = @"hello bla bla"; |
我希望有这样的事情:
1 | NSLog(@"%d",[string containsSubstring:@"BLA"]); |
不管怎样,有没有办法找到一个字符串是否包含另一个大小写为ignore的字符串?但请不要将这两个字符串都转换为大写或小写。
与链接中提供的答案类似,但使用
见苹果文档中的
1 2 3 4 5 6 7 8 9 10 | NSString *string = @"hello bla bla"; if ([string rangeOfString:@"BLA" options:NSCaseInsensitiveSearch].location == NSNotFound) { NSLog(@"string does not contain bla"); } else { NSLog(@"string contains bla!"); } |
从ios 8中,您可以将
1 2 3 4 5 | if ([string localizedCaseInsensitiveContainsString:@"BlA"]) { NSLog(@"string contains Case Insensitive bla!"); } else { NSLog(@"string does not contain bla"); } |
1 2 3 4 5 6 | NSString *string = @"hello BLA"; if ([string rangeOfString:@"bla" options:NSCaseInsensitiveSearch].location == NSNotFound) { NSLog(@"string does not contain bla"); } else { NSLog(@"string contains bla!"); } |
更新了Swift 4的答案
1 2 3 4 5 6 | extension String { func containsCaseInsensitive(string : String) -> Bool { return self.localizedCaseInsensitiveContains(string) } } |
用途:
1 | print("Hello".containsCaseInsensitive(string:"LLO")) |
输出:
真
希望它有帮助。快乐编码。
可以使用
例子:
1 2 | NSRange r = [str rangeOfString:@"BLA" options:NSCaseInsensitiveSearch]; |
如文档中所述,当找不到子字符串时,该方法返回一个范围,如
1 | BOOL b = r.location == NSNotFound; |
重要信息:如果字符串是
方法
1 | [string rangeOfString:@"bla" options:NSCaseInsensitiveSearch]; |
应该会帮你的。