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

What Objective-C NSString method need to check if a string is contained in another?

本问题已经有最佳答案,请猛点这里访问。

什么objective-c nsstring方法需要检查localizedCaseInsensitiveCompare: keyword找到的字符串是否包含在另一个字符串中,下面是我的尝试:

1
2
3
4
5
6
7
8
9
10
11
12
NSString *listOfNames = @"anas, ward, qusai, zainab";
NSString *keyword = @"Ward";

if ([listOfNames localizedCaseInsensitiveCompare:keyword]) {
    NSLog(@"
Match found!
"
);
} else {
    NSLog(@"
No match found!
"
);
}


我假设你的意思是你使用的是localizedCaseInsensitiveContainsString:,因为你引用的方法没有做到你所说的。

有一种相应的方法来获取搜索项的范围:-[NSString localizedStandardRangeOfString:],您使用返回的范围将索引返回到源字符串中。

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


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

来自文档:"本地化字符串比较基于Unicode排序规则算法,由CLDR(公共区域设置数据存储库)针对不同语言进行定制。两者都是Unicode联合体的项目。Unicode是Unicode,Inc.的注册商标。"

可能要做的一件合理的事情是将每个字符串转换为小写,使用类似于listOfNames.lowercaseString的东西。