.NET TIPS

文字列を全角/半角に変換するには?(VB.NET関数活用)

デジタルアドバンテージ 遠藤 孝信
2005/02/18

 文字列中の全角文字を半角文字(半角英数字、半角カタカナなど)に、あるいは半角文字を全角文字に変換するための関数がVB.NETには用意されている。本稿では、その利用方法と注意点、その関数をC#から利用する方法について解説する。

VB.NETにおける全角/半角の変換

 VB.NETでは、文字列を全角/半角に変換にはStrConv関数(Microsoft.VisualBasic名前空間)を利用する。

 まず、全角文字を半角に変換するには、第1パラメータに変換する文字列、第2パラメータに「VbStrConv.Narrow」を指定する。VbStrConv.NarrowはVbStrConv列挙体(Microsoft.VisualBasic名前空間)で定義されている値である。StrConv関数は変換後の文字列を返す。

 半角文字を全角に変換するには、第2パラメータに「VbStrConv.Wide」を指定すればよい。

 StrConv関数では、第3パラメータとしてカルチャ(言語や地域固有の情報)を示すID(カルチャ識別子)を指定できるが、このパラメータは省略可能である。省略した場合にはIDとして0を指定したことになる(0はシステムで既定のカルチャを示す)。

 どちらの場合の変換も、変換不可能な文字(漢字やひらがななど)は変換されずにそのまま戻り値の文字列に含まれる。

 以下に、StrConv関数を使用したVB.NETのサンプル・プログラムを示す。

全角/半角の変換を行うVB.NETのサンプル・プログラム(vbhanzen.vb)

 StrConv関数利用時にはいくつかの注意点がある。上記サンプル・プログラムにある出力例からも分かるように、全角のバックスラッシュ「\」は半角には変換されない。さらに、全角の円マーク「¥」は半角に変換されるが、半角の円マーク「\」は全角には変換されない。

 また、濁点「゛」や半濁音符「゜」が付いた全角文字(「ガ」や「パ」)は、2つの半角文字からなる文字列に変換される。逆に、この2文字の半角文字()は、1つの全角文字に変換できる。ただし単独の濁点や半濁音符は、1つの文字として全角や半角に変換される。

C#における全角/半角の変換

 VB.NETの関数は、C#からも利用できる。その具体的な利用方法については「TIPS:VB.NET固有の関数をC#で使用するには?」で解説している。

 C#では、StrConv関数はStringsクラス(Microsoft.VisualBasic名前空間)の静的メソッドであるStrConvメソッドとして利用可能だ。以下に先ほどのVB.NETのサンプル・プログラムと同等のC#のプログラムを示す。

VB.NETのStrConv関数を使用して全角/半角の変換を行うC#のサンプル・プログラム(vbhanzen.cs)

 C#ではStrConv関数のような省略可能なパラメータを持つメソッドを呼び出す場合に、そのパラメータを省略できない。そのため上記のサンプル・プログラムでは、StrConvメソッドの第3パラメータとして明示的に「0」を指定している。

 StrConv関数は、ここで解説した全角/半角の変換以外にも、文字列のひらがな/カタカナ変換も可能である。これについては「TIPS:文字列をひらがな/カタカナに変換するには?(VB.NET関数活用)」で解説している。End of Article

カテゴリ:クラス・ライブラリ 処理対象:文字列
カテゴリ:C# 処理対象:VB.NET関数
使用ライブラリ:StrConv関数(Microsoft.VisualBasic名前空間)
使用ライブラリ:Stringsクラス(Microsoft.VisualBasic名前空間)
使用ライブラリ:VbStrConv列挙体(Microsoft.VisualBasic名前空間)
関連TIPS:VB.NET固有の関数をC#で使用するには?
関連TIPS:文字列をひらがな/カタカナに変換するには?(VB.NET関数活用)
 
この記事と関連性の高い別の.NET TIPS
全角英数字のみを半角に変換するには?
文字列をひらがな/カタカナに変換するには?(VB.NET関数活用)
文字列の全角/半角をチェックするには?
文字列を文字列により分割するには?(VB.NET関数活用)
VB.NET固有の関数をC#で使用するには?
このリストは、(株)デジタルアドバンテージが開発した
自動関連記事探索システム Jigsaw(ジグソー) により自動抽出したものです。
generated by

「.NET TIPS」

TechTargetジャパン

Insider.NET フォーラム 新着記事

@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

RSSフィード

キャリアアップ

- PR -
@IT Sepcial

イベントカレンダー

PickUpイベント

- PR -
もっと見る
- PR -

お勧め求人情報

ホワイトペーパーTechTargetジャパン

@IT Sepcial
ソリューションFLASH