将 NSString 与其他不区分大小写的字符串进行比较的最佳方法是什么?如果它是字符串之一,则该方法应返回 YES,否则返回 NO。
最佳答案
这里有一个小辅助函数:
BOOL isContainedIn(NSArray* bunchOfStrings, NSString* stringToCheck)
{
for (NSString* string in bunchOfStrings) {
if ([string caseInsensitiveCompare:stringToCheck] == NSOrderedSame)
return YES;
}
return NO;
}
当然,这可以针对不同的用例进行极大优化。
例如,如果您对常量 bunchOfStrings 进行大量检查,您可以使用 NSSet
来保存字符串的小写版本并使用 containsObject:
:
BOOL isContainedIn(NSSet* bunchOfLowercaseStrings, NSString* stringToCheck)
{
return [bunchOfLowercaseStrings containsObject:[stringToCheck lowercaseString]];
}
关于ios - 不区分大小写与一堆字符串进行比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3222284/