.NET TIPS

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

デジタルアドバンテージ 遠藤 孝信
2009/07/09

 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クラスによる変換

 Convertクラス(System名前空間)には、さまざまな基本型に対して“ToXXXXメソッド”が用意されており、これを利用しても、文字→文字列や、文字列→文字の変換が可能だ。

char myChar = '字';
string myStr = "列";

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

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

// 1文字の文字列をchar型へ(その2)
//
char c = Convert.ToChar(myStr);

Console.WriteLine(c); // 出力:列
Dim myChar As Char = "字"
Dim myStr As String = "列"

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

Console.WriteLine(s) ' 出力:字

' 1文字の文字列をChar型へ(その2)
'
Dim c As Char = Convert.ToChar(myStr)

Console.WriteLine(c) ' 出力:列

 なお、最後のConvert.ToCharメソッドでは、引数の文字列が空文字列であったり、2文字以上であったりする場合には例外が発生する。End of Article

カテゴリ:クラス・ライブラリ 処理対象:文字列
使用ライブラリ:Charクラス(System名前空間)
使用ライブラリ:Stringクラス(System名前空間)
使用ライブラリ:Convertクラス(System名前空間)

この記事と関連性の高い別の.NET TIPS
文字列中の1文字を取得するには?
文字列の長さを取得するには?
文字列を1文字ずつ解析するには?(サロゲート文字対応)
文字列から特定の文字列を取り除くには?
文字列をシフトJISとしてバイト列に変換するには?
このリストは、(株)デジタルアドバンテージが開発した
自動関連記事探索システム Jigsaw(ジグソー) により自動抽出したものです。
generated by

「.NET TIPS」

@IT Special

- PR -

TechTargetジャパン

Insider.NET フォーラム 新着記事
  • 第2回 簡潔なコーディングのために (2017/7/26)
     ラムダ式で記述できるメンバの増加、throw式、out変数、タプルなど、C# 7には以前よりもコードを簡潔に記述できるような機能が導入されている
  • 第1回 Visual Studio Codeデバッグの基礎知識 (2017/7/21)
     Node.jsプログラムをデバッグしながら、Visual Studio Codeに統合されているデバッグ機能の基本の「キ」をマスターしよう
  • 第1回 明瞭なコーディングのために (2017/7/19)
     C# 7で追加された新機能の中から、「数値リテラル構文の改善」と「ローカル関数」を紹介する。これらは分かりやすいコードを記述するのに使える
  • Presentation Translator (2017/7/18)
     Presentation TranslatorはPowerPoint用のアドイン。プレゼンテーション時の字幕の付加や、多言語での質疑応答、スライドの翻訳を行える
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)
- PR -

イベントカレンダー

PickUpイベント

- PR -

アクセスランキング

もっと見る

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

注目のテーマ

Insider.NET 記事ランキング

本日 月間
ソリューションFLASH