Android 在字符串中搜索子字符串重音符号

Android 在字符串中搜索子字符串重音符号,android,localization,Android,Localization,我是希腊人。 当我用子字符串搜索我的联系人时,所有这些联系人都匹配:,,,,,,,,,,,,,,,,,“Αλός 因此,Android在字母“α”中匹配字母“α”和“ά” 这个特性有API吗,或者我必须用很难的方式来编码? e、 g.:string.replaceAll(“ά”、“α”).replaceAll(“έ”、“ε”).replaceAll(……) 这不是一种多语言的方法。本文中的代码似乎符合您的要求 import java.text.Normalizer; import java.ut

我是希腊人。 当我用子字符串
搜索我的联系人时,所有这些联系人都匹配:
“Αλός

因此,Android在字母“α”中匹配字母“α”和“ά”

这个特性有API吗,或者我必须用很难的方式来编码? e、 g.:
string.replaceAll(“ά”、“α”).replaceAll(“έ”、“ε”).replaceAll(……)
这不是一种多语言的方法。

本文中的代码似乎符合您的要求

import java.text.Normalizer;
import java.util.regex.Pattern;

public String deAccent(String str) {
    String nfdNormalizedString = Normalizer.normalize(str, Normalizer.Form.NFD); 
    Pattern pattern = Pattern.compile("\\p{InCombiningDiacriticalMarks}+");
    return pattern.matcher(nfdNormalizedString).replaceAll("");
}
在Java的最新版本中,一些Unicode支持被添加到
\p{Script=Greek}
\p{sc=Greek}
\p{IsGreek}
\p{Greek}
。你可能会想研究一下如何使用这些