String.Formatメソッドって使ってますか?
String.Formatメソッドで書式を指定することで、指定した書式で出力表示することができます。書式が指定できるので、出力結果が読みやすくなります。
この記事では、String.Formatメソッドについて
- String.Formatメソッドとは
- 書式指定子とは
- カスタム書式指定子とは
- 0埋めで表示する方法
- 小数点以下の桁数を指定する方法
- 3桁区切りで表示する方法
- ¥マークを付ける方法
- %表示する方法
- 複数の文字列を連結する方法
など基本的な内容から、具体的な使い方の内容についても解説していきます。
今回はString.Formatメソッドについて、使い方をわかりやすく解説します!
String.Format メソッド とは
String.FormatメソッドはStringクラスメソッドの1つで、第1引数に指定した書式で第2引数以降のオブジェクトを変換して出力表示します。
String.Format("書式", オブジェクト0, オブジェクト1, ・・・);
書式内ではオブジェクト「{ }」(中カッコ)とインデックス番号を使って記述します。
{index[,alignment][:formatString]}
これを複合書式指定と呼びます。
「[ ]」内は省略可能です。
indexは第2引数以降のオブジェクトのインデックス番号を指定します。alignmentでは、書式設定フィールドの幅を指定します。
正の値であれば右揃え、負の値であれば左揃えで出力されます。指定した値の桁数、文字数で出力されます。
formatStringでは、書式指定子を指定します。書式指定子については後ほど解説します。
例:
String.Format("{0, -5:G}, {1:G3}, {2:N1}", 10, 12345, 12.345);
中カッコ{ }のエスケープ
複合書式指定には「{ }」(中カッコ)を使うとお伝えしました。
では書式内で文字として「{ }」(中カッコ)を使いたい場合はどのようにしたらよいのでしょうか?
その場合は中カッコを続けて記述します。
例:
String.Format("{{{0}}}", 10);
書式指定子とは
それでは、書式指定子について表にまとめてみました。
指定子 | 説明 |
---|---|
G | 一般(General) |
N | 数値(Number) |
F | 固定小数点数(Fixed-point) |
E | 指数(Exponential) |
P | パーセント(Percent) |
D | 10進数(Decimal) |
X | 16進数の大文字(Hexadecimal) |
x | 16進数の小文字(Hexadecimal) |
C | 通貨(Currency) |
カスタム書式指定子とは
カスタム書式指定子を使うと数値を0埋めで出力したり、3桁で区切ることができます。
これも表にまとめてみました。
指定子 | 呼び名 | 説明 |
---|---|---|
0 | ゼロプレースホルダ | 0埋めで出力 |
# | 桁プレースホルダ | 桁数の指定 |
, | 桁区切り記号 | 3桁区切り |
. | 小数点 | 小数点以下の桁数を指定 |
% | パーセント | パーセント表示 |
; | セクション区切り記号 | 書式を複数指定する場合に区切りで使用 |
0埋めで表示する方法
0埋めで表示する方法についてサンプルコードで確認しましょう。
0埋めしたい桁数分だけ0を並べます。
using System; namespace Sample { class Sample { static void Main() { int num = 10; Console.WriteLine(String.Format("{0:00000}", num)); Console.ReadKey(); } } }
実行結果:
00010
小数点以下の桁数を指定する方法
小数点以下の桁数を指定する方法についてサンプルコードで確認しましょう。
表示したい桁数分だけ#を並べます。
小数点以下の場合、指定した桁数より以下は四捨五入されます。
using System; namespace Sample { class Sample { static void Main() { double num = 12.345; Console.WriteLine(String.Format("{0:#}, {0:#.##}", num)); Console.ReadKey(); } } }
実行結果:
12, 12.35
3桁区切りで表示する方法
3桁区切りで表示する方法についてサンプルコードで確認しましょう。
using System; namespace Sample { class Sample { static void Main() { double num = 123456789; Console.WriteLine(String.Format("{0:#,0}", num)); Console.ReadKey(); } } }
実行結果:
123,456,789
¥マークを付ける方法
¥マークを付ける方法についてサンプルコードで確認しましょう。
using System; namespace Sample { class Sample { static void Main() { double num = 123456789; Console.WriteLine(String.Format("{0:C}", num)); Console.ReadKey(); } } }
実行結果:
123,456,789
%表示する方法
%表示する方法についてサンプルコードで確認しましょう。
using System; namespace Sample { class Sample { static void Main() { double num = 0.1234; Console.WriteLine(String.Format("{0:P}", num)); Console.ReadKey(); } } }
実行結果:
12.34 %
複数の文字列を連結する方法
複数の文字列を連結する方法についてサンプルコードで確認しましょう。
using System; namespace Sample { class Sample { static void Main() { string str1 = "侍"; string str2 = "塾"; Console.WriteLine(String.Format("{0}エンジニア{1}", str1, str2)); Console.ReadKey(); } } }
実行結果:
侍エンジニア
まとめ
ここでは、StringクラスのFormatメソッドについて説明しました。今回お伝えした書式指定子、カスタム書式指定子はToStringメソッドやConsole.WriteLineメソッドでも同じように使えます。
出力形式を読みやすくすることができますので、使いこなすことができるように、この記事を何度も参考にして下さいね!