我想搜索一个字符串的NSMutableArray。我正在使用containsObject:目前,但它看起来像是区分大小写。我需要搜索给定字符串(旅行)的所有组合。任何想法将不胜感激。不区分大小写的数组搜索
if ([self.theArray containsObject:trip]) {
}
我想搜索一个字符串的NSMutableArray。我正在使用containsObject:目前,但它看起来像是区分大小写。我需要搜索给定字符串(旅行)的所有组合。任何想法将不胜感激。不区分大小写的数组搜索
if ([self.theArray containsObject:trip]) {
}
并不难:
BOOL found = NO;
for (NSString* str in self.theArray) {
if ([str caseInsensitiveCompare:trip] == NSOrderedSame) {
found = YES;
break;
}
}
怎么样块:
__block trip = @"blah";
if (NSNotFound!=[self.theArray indexOfObjectPassingTest:^(id obj, NSUInteger idx, BOOL *stop)
{
if (NSOrderedSame==[(NSString *)obj caseInsensitiveCompare:trip])
{
stop=YES;
return YES;
}
return NO;
}])
{
NSLog(@"It's a MATCH!");
}
创建NSArray的一个类别,并在那里加入这个功能。
- (BOOL)containsStringCaseInsensitive:(NSString *)key {
key = [key lowercaseString];
for (int i = ([self count] - 1); i >= 0; i--) {
NSObject * obj = [self objectAtIndex:i];
if ([obj isKindOfClass:[NSString class]]) {
NSString * strInArray = [(NSString *)obj lowercaseString];
if ([key isEqualToString:strInArray]) {
return YES;
}
}
}
return NO;
}
你甚至可能想使用'-localizedCaseInsensitiveCompare:'。 – 2011-04-12 16:45:36
辉煌。感谢您的帮助,我欣赏它。 – 2011-04-12 16:47:30
不适合我。 – Nepster 2014-10-20 10:42:14