ios - 不区分大小写与一堆字符串进行比较

标签 ios objective-c nsstring compare case-insensitive

将 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/

相关文章:

ios - 如何向 ruby​​motion 应用程序添加动画?

ios - Xcode:应用程序构建但不会运行并且无法在方案中选择可执行文件

c++ - else if 预期表达式 c++/Xcode

objective-c - 显示 "screenshot flash"作为对用户的反馈

ios - Objective-C 命名 UILabel iOS

iphone - Objective c 无法定义宏

ios - 是否有没有 .o 文件的静态库?或者在这种情况下它不是静态库?

ios - 从 NSData 转换后如何使用 RNCryptor 解密 nsstring

php - 如何在 iOS 应用程序中显示重音字符实体?

IOS方法调用