文字と文字列を変換するには?[C#、VB].NET TIPS

» 2009年07月09日 05時00分 公開
[遠藤孝信デジタルアドバンテージ]

この記事は会員限定です。会員登録(無料)すると全てご覧いただけます。

「.NET TIPS」のインデックス

連載目次

 C#やVBでは、文字列(string型)は、たとえ1文字であっても文字列であり、文字型(char型)とはまったく別のデータ型である。本稿では、1文字からなる文字列と、1文字との相互の変換についてまとめる。

1文字(char型)から文字列(string型)への変換

 char型の1文字を、string型の1文字の文字列に変換するには、文字に対してToStringメソッドを呼び出すのが最も簡便だ。

char myChar = '字';

// 1文字を文字列型へ(その1)
//
string s = myChar.ToString();

Console.WriteLine(s); // 出力:字

Dim myChar As Char = "字"

' 1文字を文字列型へ(その1)
'
Dim s As String = myChar.ToString()

Console.WriteLine(s) ' 出力:字

char型をstring型へ変換するコード(上:C#、下:VB)

 ToStringメソッドは、すべてのオブジェクトが持つ、オブジェクトの内容を文字列に変換するためのメソッドである(出力文字列の形式はオブジェクトによって異なる)。

■Stringクラスのコンストラクタを利用

 文字列を生成するStringクラス(System名前空間)のコンストラクタは、引数としてchar型の配列を指定できるので、これを利用して文字を文字列に変換することも可能だ。

char myChar = '字';

// 1文字を文字列型へ(その2)
//
string s = new String(new char[] { myChar });

Console.WriteLine(s); // 出力:字

Dim myChar As Char = "字"

' 1文字を文字列型へ(その2)
'
Dim s As String = New String(New Char() { myChar })

Console.WriteLine(s)

Stringクラスのコンストラクタを使用したコード(上:C#、下:VB)

文字列(string型)から1文字(char型)への変換

 逆に、文字列(内の1文字)をchar型の文字に変換するには、Stringクラスで定義されているインデクサを用いればよい。インデクサを使えば、文字列中の任意の1文字を取り出すことができる。これは、C#では角カッコ“[…]”、VBでは丸カッコ“(…)”を文字列変数の直後に記述して使用する。

string myStr = "列";

// 1文字の文字列をchar型へ(その1)
//
char c = myStr[0];

Console.WriteLine(c); // 出力:列

Dim myStr As String = "列"

' 1文字の文字列をChar型へ(その1)
'
Dim c As Char = myStr(0)

Console.WriteLine(c) ' 出力:列

string型をchar型へ変換するコード(上:C#、下:VB)

Convertクラスによる変換

Copyright© Digital Advantage Corp. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。