【C#】数値を0埋め文字列化する方法まとめ

C#
この記事は約2分で読めます。

C#では0埋め文字列化する方法は多いです。

ToString、string.Format、文字列補間式、PadLeftをそれぞれまとめてみました。

スポンサーリンク

数値のToStringメソッドを使った0埋め文字列化

数値のToStringメソッドの引数に「D + けた数」を指定すると0埋め文字列化ができます。

int i = 1;
int digit = 5;
i.ToString("D" + digit); // "00001" になる

もっと簡単に書くとこのような書き方もできます。

1.ToString("D5");
スポンサーリンク

string.Formatメソッドを使った0埋め文字列化

string.Formatの第一引数に「”{0}”」を指定し第二引数に数値を指定すると数値から文字列に変換できます。

第一引数に「”{0:D + けた数}”」すると0埋め文字列化ができます。

int i = 1;
string.Format("{0:D5}",i); // "00001" になる

第一引数に「”{0:D5}”」ではなく、「”{0:00000}”」と単純に桁数だけ0を並べても同じ結果になります。

int i = 1;
string.Format("{0:00000}",i); // "00001" になる
スポンサーリンク

文字列補間式を使った0埋め文字列化(C#6.0~)

string.Formatと意味は変わらないのですが、文字列補間式「$”{}”」を使うとシンプルに書けます。

string s = $"{1:D5}"; // "00001" になる
スポンサーリンク

PadLeft関数を使って文字列の先頭に0埋めする

PadLeft関数は他の関数とは違い、最初から文字列である必要があります。

第一引数にけた数、第二引数に埋めたい文字(char型)を指定します。

第二引数に’0’を指定すれば0埋めができるというわけです。

数値を変換するより処理速度が早いです。参考:【C#】0(ゼロ)埋めはPadLeftが爆速だった話

"1".PadLeft(5,'0'); // "00001" になる

ちなみに数値を文字列化してPadLeft関数を使うと処理速度は変わらないみたいです。型変換に時間がかかるようですね…

1.ToString().PadLeft(5,'0'); // "00001" になる
スポンサーリンク

まとめ

どれを使っても問題ないのですが、記述量が少ない文字列保管式を使うと良いです。

最初から文字列の場合はPadLeftが処理速度が速いのでおすすめです。

この記事を書いた人
サイト運営者
Ryu
Ryu

フリーランスエンジニア。転職含め9社経験。第二新卒から未経験でIT就職。社内SEとSIerのSEで働き、企画〜運用保守、フロント〜バック・インフラとフルスタックな守備範囲。C#とSQLとSalesforceが得意。

Ryuをフォローする
C#
スポンサーリンク