2016-06-13 9 views
1

私はベトナムで私のパートナーのプロジェクトをやっています。ベトナム語を解決しなければなりません。 ベトナム語の文字列のすべてのUnicode記号を削除するには?C#でベトナム語の文字列からUnicodeシンボルを削除するには

例:Xinchàocácbạn! (こんにちは全身) - >新シャオcac禁止!

+0

あなたはこのためにUTF16を使用しようとすることができます。アイデアは、文字列をUTF16に変換することです。各文字につき2バイトが得られます。 1バイトはアクセント記号などのような「装飾」です。もう1文字は普通の文字でなければなりません。私はC#のエキスパートではありませんが、私は以前にもPHPで同様のトリックを行っています。 – Adam

+0

ありがとう!それは良い考えです。しかし、私はTonyBuiのソリューションは素晴らしい仕事だと思います。 –

+0

@Adamいいえ、そうではありません。あなたはどこからそれを手に入れましたか? – roeland

答えて

1

string[]VietnameseSignsにベトナムのすべての兆候が含まれていると定義できます。

例:

private static readonly string[] VietnameseSigns = new string[] 
     { 

      "aAeEoOuUiIdDyY", 

      "áàạảãâấầậẩẫăắằặẳẵ", 

      "ÁÀẠẢÃÂẤẦẬẨẪĂẮẰẶẲẴ", 

      "éèẹẻẽêếềệểễ", 

      "ÉÈẸẺẼÊẾỀỆỂỄ", 

      "óòọỏõôốồộổỗơớờợởỡ", 

      "ÓÒỌỎÕÔỐỒỘỔỖƠỚỜỢỞỠ", 

      "úùụủũưứừựửữ", 

      "ÚÙỤỦŨƯỨỪỰỬỮ", 

      "íìịỉĩ", 

      "ÍÌỊỈĨ", 

      "đ", 

      "Đ", 

      "ýỳỵỷỹ", 

      "ÝỲỴỶỸ" 
     }; 

その後、あなたは、入力文字列からすべてのベトナムの兆候を削除する関数を定義します。

例:

public static string RemoveSign4VietnameseString(string str) 
     { 
      for (int i = 1; i < VietnameseSigns.Length; i++) 
      { 
       for (int j = 0; j < VietnameseSigns[i].Length; j++) 
        str = str.Replace(VietnameseSigns[i][j], VietnameseSigns[0][i - 1]); 
      } 
      return str; 
     } 
関連する問題