📝
[C#] 文字列の書式設定を行う方法
C#で数値を右揃えで表示したり、特定の桁数で表示したりするなどの書式設定を行う方法として、string
のFormat
メソッドを使う方法と、文字列補間$"{}"
を使う方法があります。
文字列補間$"{}"
の方がパフォーマンスが良く、コードの可読性も良いです。またstring.Format
メソッドは実行時エラーとして検出されますが、文字列補間はコンパイルエラーとして検出することができます。
string.Format
メソッド
構文
{index[,alignment][:formatString]}
index
パラメータ指定子といい、オブジェクトのリスト内の何番目の要素を補間するかを指定します。
alignment
表示桁数や左揃え、右揃えの設定を行います。
alignment
が正の場合は右揃え、負の場合は左揃えです。
alignment
の値が書式設定する文字列の長さよりも小さい場合は無視されます。
formatString
書式指定を行います。
例えば、書式設定されるオブジェクトが数値の場合、d
を指定すると10進数表示、x
を指定すると16進数表示となります。
他にも日付や時刻の書式設定なども行うことができます。(標準の日時書式指定文字列、カスタム日時形式文字列)
index
の例:
Console.WriteLine(string.Format("{0}, {1}"), 123, 456);
出力:
123, 456
alignment
の例:
Console.WriteLine(string.Format("{0, 5}"), 123);
出力:
123
stringFormat
の例:
Console.WriteLine(string.Format("{0:x}"), 123);
出力:
7b
$"{}"
文字列補間string.Format
と構文は同じで、文字列の前に$
を付けるだけです。
先ほどの例を文字列補間で記述すると以下のようになります。
Console.WriteLine($"{123}, {456}");
Console.WriteLine($"{123, 5}");
Console.WriteLine($"{123:x}");
出力:
123, 456
123
7b
補足
上記の例では、直接数値を表示させていますが、もちろん変数を表示させることもできます。
int num=123;
Console.WriteLine($"{num}");
Discussion