.net column

.NET開発者のためのブログメディア
プログラムコード

C#のString.Formatメソッドで文字列の変換と挿入をする方法

2020年07月28日

C#のString.Formatメソッドでは、「異なるデータ型から文字列への変換(書式指定可)」や「変換した文字列同士の連結」といった処理が実現可能です。
例えば、顧客コードを3桁で管理していて「1」を「001」に変換したいケースにも活用できます。
この記事では、String.Formatの使用方法について解説していきます。大変便利なメソッドなので、ぜひ参考にしてみてください。

PG
桁数不足の時に数値を0埋めしたいのですが、if文で桁数を判定して先頭に0を追加する方が良いでしょうか?
PL
数値の0埋めをしたい時は、StringクラスのFormatメソッドを使用すると便利ですよ。

String.Formatメソッドの概要

Formatメソッドには複数の定義が存在しますが、主なパターンを例に挙げて紹介します。

文字列の書式項目を、指定されたオブジェクトの文字列形式に置換します。
オブジェクトは複数与えることもできるため、オブジェクトのインデックス番号(0始まり)で判別します。文字列形式は、書式にて「{インデックス番号:書式指定子}」の形式で指定することが可能です。

書式指定子を用いて数値を0埋めする方法

まず、標準でサポートされている主な数値の書式指定子は、下記のとおりです。

書式指定子概要使用例
C通貨1000
D、dDecimal (10 進数型)999
E、e指数1052.033
F、f固定小数点99.99
P、pパーセント1
X、x16進数FF

まずは、数値の1をそのまま出力してみましょう。

では次に、0埋めの3桁で出力したい場合、書式指定子の後ろに桁数を指定します。

もしくは、書式設定子の代わりに0を並べても可能です。

複数の書式項目を指定する方法

次は、複数の書式項目を指定してみましょう。

例えば、単価と数量の数値を用いて、乗算した計算結果を出力します。

{0}にはtanka、{1}にはsuryo、{2}にはtanka*suryo が挿入されます。
また、書式指定子の「C」によって通貨形式を指定していますね。

同じ書式項目を複数回指定する例も紹介します。同じ数値を10進数と16進数で出力します。

{0}は同じですが、書式指定によってD(10進数)とX(16進数)を指定していますね。

結果の文字列に中括弧を含める方法

書式項目は{0}のように中括弧で囲んで指定していますが、中括弧自体を文字列に含めたい場合は、どうすれば良いのでしょうか。

中括弧を二重にすることで文字列の中括弧としてみなされて、内部の{0}は今までの要領で置換されていますね。

もしコードが見にくいと感じる方は、複数指定を活用して実現することも可能です。

PG
なるほど、こんな便利なメソッドがあったのですね!
PL
そうですね。この機会に、String.Formatを使用して様々な文字列を作成してみてください。

String.Formatメソッドで数値を文字列に変換

今回はString.Formatを使用した文字列の変換を紹介しました。プログラムを組む上で、変数の値を文字列に変換したい場面は多々発生すると思います。すでに用意されているクラスやメソッドを活用して、効率良くコーディングを進めていきたいですね。

>>>C#の案件を探すならFEnet .NET Navi


.NET分野でのキャリアアップをお考えの方は、現在募集中の求人情報をご覧ください。

求人一覧

また、直接のエントリーも受け付けております。

エントリー(応募フォーム)