iPhone - Comparing strings with a German umlaut

2020-03-04 07:16发布

问题:

I've few German strings (with umlauts like åä etc) in NSArray. For example consider a word like "gënder" is there in array. User enters "gen" in a text field. I can to check the words in string that matches the characters "gen". How can I compare the string by consider umlauts as english strings...? So in above example, when user enters "gen", it has to return "gënder".

Is there any solution for this type of comparision?

回答1:

Use the NSDiacriticInsensitiveSearch option of the various NSString compare methods. As described in the documentation:

Search ignores diacritic marks. For example, ‘ö’ is equal to ‘o’.

For example:

NSString *text = @"gënder";
NSString *searchString = @"ender";

NSRange rng = [text rangeOfString:searchString 
                          options:NSDiacriticInsensitiveSearch];

if (rng.location != NSNotFound)
{
    NSLog(@"Match at %@", NSStringFromRange(rng));
}
else
{
    NSLog(@"No match");
}