平常判断数组中是否包含某个字符我们通常使用containsObject
,但这种方式是严格区分大小写的。
当我们需要不区分大小写来判断包含时可以使用indexOfObjectPassingTest
配合caseInsensitiveCompare
来实现
当我们判断单个字符并不区分大小写时,通常使用caseInsensitiveCompare
[str caseInsensitiveCompare:@"abc"] == NSOrderedSame
所以当我们需要判断数组是否包含时,可以这样写
//返回数组中是否包含字符 不区分大小写
- (BOOL)caseInsensitiveCompareWithArray:(NSArray *)array string:(NSString *)string{
return ([array indexOfObjectPassingTest:^(id obj, NSUInteger idx, BOOL *stop){
return (BOOL)([obj caseInsensitiveCompare:string] == NSOrderedSame);
}] != NSNotFound);
}
使用:
if ([self caseInsensitiveCompareWithArray:arr string:str]){
//arr中包含str,不区分大小写
}