2016-03-21 5 views
2

私はギリシャ語です。 サブストリング"αυλ"で連絡先を検索すると、これらの連絡先はすべて一致します。"Παύλος""Παυλίνα""Αυλός"アクセント記号の影響を受けない部分文字列を検索する

Androidでは、文字「α」と文字「α」と「ά」が一致します。

この機能のAPIはありますか、これを難しい方法でコードする必要がありますか? 例:string.replaceAll("ά", "α").replaceAll("έ", "ε").replaceAll(......) 多言語対応ではありません。

答えて

1

このコードはlinkのコードに沿っているようです。ジャワの最近のバージョンで

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(""); 
} 

、いくつかのUnicodeサポートは\p{Script=Greek}\p{sc=Greek}\p{IsGreek}、および\p{Greek}を加えました。あなたはおそらくこれらを使用して調べる必要があります。

関連する問題