【C#】数値の0埋めを変数で桁数指定できるようにする【ToString()】
2023.03.08
CATEGORY : プログラミング
あんみんどうふです。
C#の0埋め、私はいつも文字列補間で行っていますがたま~に関数等で桁数を指定したいことがあります。
例えば4桁で0埋めを行う時は「$”{value:D4}”」や「$”{value:0000}”」で行えますが、値では変数が使えても右側のフォーマットは直接入力のみなので、変数で桁数を指定するようなことはできません。
こういう時に”ToString()“の出番です。
数値の文字列変換といえばこいつですが、変換の際に引数からフォーマットを指定することができます。
1 2 | int value = 12; Console.WriteLine(value.ToString("D4")); // 0012 |
このフォーマットの部分は文字列で指定しているので、文字列型の変数を使うことで直接入力でなくても指定できます。
10進数かつ6桁で0埋めする場合。
1 2 3 4 5 6 7 8 9 10 11 | int value = 12; // 対象の値 string type = "D"; // 補間タイプ ("D"=10進数) string digit = 6; // 桁数 // 文字列結合 StringBuilder sb = new StringBuilder(); sb.append(type); sb.append(digit); // 出力 Console.WriteLine(value.ToString(sb.ToString())); // 000012 |
※出力の部分はもちろん文字列補間でも書けますが、文字列補間を二重で行うとVisual Studioの括弧に色付ける系の拡張機能がバグります。コンパイルは普通に通ります。
気になっちゃうのでこの場合私はあえてToString()で書きますね・・・。
(画像では拡張機能「Viasfora 4.3.195」を使用)
文字列補間を使い始めてからToString()は正直オワコンだと思っていましたがそんなことなかったですね。まさに適材適所というやつでした。
ナメててごめん、ToString()。
以上。