2016-05-05 11 views

答えて

3

Normalizerjava.text.Normalizer で検索しています。アクセント記号のついたUnicode文字とその分解記号の間にマッピングすることができます。
基本的にすべてのアクセント付き文字をdeAccented対応文字に変換し、その後にそれらの組み合わせ発音記号を変換します。今、正規表現を使って発音区別記号を取り除くことができます。

 public static void main(String[] args) { 

      System.out.println(deAccent("Xin chào Việt Nam")); 
     } 

     public static String deAccent(String str) { 
      String nfdNormalizedString = Normalizer.normalize(str, Normalizer.Form.NFD); 
      Pattern pattern = Pattern.compile("\\p{InCombiningDiacriticalMarks}+"); 
      return pattern.matcher(nfdNormalizedString).replaceAll(""); 
     } 
+0

あなたは文字列「DJI」と歓迎:) – CauCuKien

+0

を愛し、deAccent(「DJI」)結果は「DJI」で与えられました。効果的にテキストを正規化することはできません。 –

+0

が、入力された@CauCuKien私はあなたに@Ahmedガマル – VanThaoNguyen

関連する問題