什么Objective-C NSString方法需要检查字符串是否包含在另一个字符串中?

时间:2016-06-23 17:33:37

标签: nsstring

NSString的哪种方法检查localizedCaseInsensitiveCompare: keyword找到的字符串是否包含在另一个字符串中?

NSString *listOfNames = @"anas, ward, qusai, zainab";
NSString *keyword = @"Ward";

if ([listOfNames localizedCaseInsensitiveCompare:keyword]) {
    NSLog(@"\nMatch found!\n");
} else {
    NSLog(@"\nNo match found!\n");
}

2 个答案:

答案 0 :(得分:1)

localizedCaseInsensitiveCompare最有可能在内部将两个字符串转换为小写,然后使用本地化的整理算法进行比较。

来自文档: "本地化字符串比较基于Unicode校对算法,由CLDR(公共区域设置数据存储库)为不同语言定制。两者都是Unicode Consortium的项目。 Unicode是Unicode,Inc。"

的注册商标

可能合理的做法是将每个字符串转换为小写,使用类似listOfNames.lowercaseString

的内容

答案 1 :(得分:1)

我认为你的意思是你正在使用localizedCaseInsensitiveContainsString:,因为你所引用的方法并没有按照你所说的去做。

有一个相应的方法来获取搜索词的范围:-[NSString localizedStandardRangeOfString:]您使用返回的范围索引回源字符串。

如果您需要使用当前区域设置进行搜索,也可以使用rangeOfString:options:range:locale: