我想搜索一個字符串的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