如何比较两个NSString,字符无关?NSString比较特殊字符无关
NSPredicate
提供==[d]
比较器。
但是我没有找到直接比较两个NSString
的方法。
对于exapmle,这两个字符串应该被认为是相同的:
样本串
样品字符串
如何比较两个NSString,字符无关?NSString比较特殊字符无关
NSPredicate
提供==[d]
比较器。
但是我没有找到直接比较两个NSString
的方法。
对于exapmle,这两个字符串应该被认为是相同的:
样本串
样品字符串
NSString *s1 = @"Šämplé Štrïñg";
NSString *s2 = @"Sample String";
NSComparisonResult cmp = [s1 compare:s2 options:NSDiacriticInsensitiveSearch];
// --> cmp = NSOrderedSame
使用compare:options:
:
NSString *str1 = ...;
NSString *str2 = ...;
NSComparisonResult result = [str1 compare:str2 options:NSDiacriticInsensitiveSearch | NSCaseInsensitiveSearch | NSWidthInsensitiveSearch];
如果你想要做其他动作与字符串,可以折叠两个字符串到他们的简单形式:`:
NSString *fold1 = [str1 stringByFoldingWithOptions:NSDiacriticInsensitiveSearch | NSCaseInsensitiveSearch | NSWidthInsensitiveSearch locale:[NSLocale currentLocale]];
NSString *fold2 = [str2 stringByFoldingWithOptions:NSDiacriticInsensitiveSearch | NSCaseInsensitiveSearch | NSWidthInsensitiveSearch locale:[NSLocale currentLocale]];
NSRange range = [fold1 rangeOfString:fold2]; // or other string comparisons
很好的答案,但**马丁R **更快;) – NSAddict
酷,你怎么能'包含做到这一点? – NSAddict
您可以使用'rangeOfString:options:'与'NSDiacriticInsensitiveSearch'选项。 –