【C#】数値を文字列にして、頭を0(ゼロ)で埋める

数値を文字列にして指定桁数に揃えたい場合があります。
足りない桁をゼロで埋めたい時です。
例えば、123という数字を”000123″と変換したい場合です。

数値を文字列にして、頭を0(ゼロ)で埋める方法

数値を文字列にし、頭を0(ゼロ)で埋めるにはStringクラスのFormatメソッドを利用します。
記述例です。

String.Format("{0:000000}", 123);

これは以下のように書くこともできます。

String.Format("{0:D6}", 123);

どちらでも結果は同じですので、好みで使うと良いかと思います。
コードでの使用例と実行結果です。

using System;

...略...

string str = String.Format("{0:000000}", 123);
Console.WriteLine(str);

// 【結果】
// "000123"

Unityで利用する場合

ゲーム開発エンジンのUnityではC#を利用するのですが、Unityで同じことをやる場合、私は以下のように記述しています。

string str = string.Format("{0:000000}", 123);
Debug.Log(str);

上記のようにStringをstringとしています。(頭のSが大文字と小文字で異なる)

理由として、最初にusing System;と宣言してしまうとRandomメソッドを使う時にSystem.RandomとUnityEngine.RandomがぶつかってSystem.Randomが呼ばれてしまうということがあります。
ですので、なるべくusing System;を使いたくないためです。

ちなみにstringはSystem.Stringの別名です。
System.String.Format()と書くところをstring.Formatと書くことができるということです。

文字列の頭を埋める場合

また、すでに文字列になっている場合は以下のようにPadLeftメソッドを使って文字列の頭を0(ゼロ)で埋めることもできます。

using System;

...略...

string str1 = "123";
string str2 = str1.PadLeft(6, '0'); // 6は桁数
Console.WriteLine(str2);

// 【結果】
// "000123"