全角文字を半角文字に変換するメソッドが用意されてるんだろうなとググってみたら、どうやら Visual C# では用意されてないよう。
@ITの質問掲示板「C#による半角⇔全角変換の方法は?」
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=10448&forum=7
↑ ここなんかを見ると、多くの人は Visual Basic のStrConv()を利用しているようす。
Visual Basic のStrConvメソッド使わずに思ったよりもコード量も少なく書けたので覚え書きとして残しておこうと思う。
ちゃちゃっと書いたので、ひょっとするとうまくいかないかも。うまくいかなかったらゴメンナサイ。
処理は簡単
「変換したい文字の変換表を持って、その表に従って順に置き換えていく」てだけ。
「全角スペース→半角スペース」もしたいと思ったら表に追加するだけで対応できる。
char[,] table = new char[,]{ {'0','0'},{'1','1'},{'2','2'},{'3','3'},{'4','4'}, {'5','5'},{'6','6'},{'7','7'},{'8','8'},{'9','9'}, {'A','A'},{'B','B'},{'C','C'},{'D','D'},{'E','E'}, {'F','F'},{'G','G'},{'H','H'},{'I','I'},{'J','J'}, {'K','K'},{'L','L'},{'M','M'},{'N','N'},{'O','O'}, {'P','P'},{'Q','Q'},{'R','R'},{'S','S'},{'T','T'}, {'U','U'},{'V','V'},{'W','W'},{'X','X'},{'Y','Y'}, {'Z','Z'}, {'a','a'},{'b','b'},{'c','c'},{'d','d'},{'e','e'}, {'f','f'},{'g','g'},{'h','h'},{'i','i'},{'j','j'}, {'k','k'},{'l','l'},{'m','m'},{'n','n'},{'o','o'}, {'p','p'},{'q','q'},{'r','r'},{'s','s'},{'t','t'}, {'u','u'},{'v','v'},{'w','w'},{'x','x'},{'y','y'}, {'z','z'} }; string strTarget = textBox1.Text; for (int i = 0; i < table.Length / table.GetLength(1); i++) { strTarget = strTarget.Replace(table[i, 0], table[i, 1]); } textBox2.Text = strTarget;