文字に依存しない2つのNSStringを比較するにはどうすればよいですか?
NSPredicate
==[d]
コンパレータを提供します。しかし、2 つの s を直接
比較する方法は見つかりませんでした。NSString
たとえば、次の 2 つの文字列は同一と見なす必要があります。
シャンプレ シュトリング
サンプル文字列
文字に依存しない2つのNSStringを比較するにはどうすればよいですか?
NSPredicate
==[d]
コンパレータを提供します。しかし、2 つの s を直接
比較する方法は見つかりませんでした。NSString
たとえば、次の 2 つの文字列は同一と見なす必要があります。
シャンプレ シュトリング
サンプル文字列
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