C#で全角を半角に変換する
C#で、全角文字(2バイト文字)をいわゆる半角文字(1バイト文字)に置換してみました。
目次
Visual BasicのStrConv関数を使う
いわゆる全角文字(1とか)で数字が書かれている文書がたまにあったりして、いわゆる半角文字(1とか)への変換が必要になる場合があります。単純に1文字ずつ変換する方法もありますが、面倒ですのでVisual BasicのStrConv関数を使ってみます。
試してみた
標準入力から文字列を読み取って、変換結果を標準出力に出力する、コンソールアプリを作ってみます。
Visual Basicの参照を追加する
VbStrConvはVisual Basicの関数ですので、まずVisual Basicを参照に追加します。ソリューションエクスプローラーの「参照」を右クリックして、右クリックメニューの中から「参照の追加」を選択します。 参照マネージャーのウィンドウが開くので、「アセンブリ」→「フレームワーク」の中から「Microsoft.VisualBasic」の項目にチェックを付けて、「OK」します。 これで、Visual Basicへの参照が追加されます。コードの方にも、下記を記述しておいてください。
using Microsoft.VisualBasic;
変換プログラムを作る
プログラムは、下記のようにしました。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.IO;
using Microsoft.VisualBasic;
namespace strconv_trial
{
class Program
{
static void Main(string[] args)
{
TextReader StdIn = Console.In;
string InputText = StdIn.ReadToEnd();
string OutputText = Microsoft.VisualBasic.Strings.StrConv(InputText, VbStrConv.Narrow);
Console.Write(OutputText);
}
}
}
標準入力から入力するためにTextReaderを使用します。そのため、usingにSystem.IOを追加します。また、StrConvを使用するためにusingにMicrosoft.VisualBasicも追加します。 変換部分のプログラムは、とても単純ですね。
公開日
広告