文字列をゼロパディングする方法
string <ゼロパディング結果> = <対象文字列>.PadLeft(<桁数>, '0');
解説
PadLeft() は stringクラスのメソッドです。 文字列の左側(先頭)に指定した文字を追加することで、文字列の長さを指定した文字数に揃えます。このメソッドは、以下の2つのパラメータを取ります。- `totalWidth`(必須) : 返される文字列の全体の長さを指定します。もし、この値が元の文字列の長さよりも小さい場合、元の文字列がそのまま返されます。
- `paddingChar`(オプション) : 埋めるために使用する文字を指定します。このパラメータが省略された場合、空白文字が使用されます。
サンプルコード
次のサンプルコードは 文字列 "123" を 10桁 で ゼロパディングします。string before = "123";
// 10桁で前ゼロ埋め
string after = before.PadLeft(10, '0');
// 結果 = "0000000123"
Console.WriteLine(after);
// 結果 = "123"(元の文字列はそのまま)
Console.WriteLine(before);
符号を含む場合
文字列中に プラス や マイナスの符号 が含まれていると、次のように符号の位置がずれてしまいます。 符号に対応するには 文字列中に 符号が含まれているかを確認し、ゼロ埋め後に 符号を戻す などの対応が必要です。// 結果 = "0+123"
"+123".PadLeft(5, '0');
// 結果 = "0-123"
"-123".PadLeft(5, '0');
サンプルコード
次のサンプルコードは、符号に対応した ゼロパディング関数の一例です。引数に 文字列 と 桁数 を渡すと、ゼロパディングした結果を返します。/// <summary>
/// ゼロパディングを行う
/// </summary>
/// <param name="value">対象文字列</param>
/// <param name="digits">桁数</param>
/// <returns>ゼロパディング後の文字列</returns>
static string ZeroPadding(string value, int digits)
{
// 対象文字列 が null の場合、そのまま返す。
if (value is null)
{
return null;
}
// 桁数がマイナスの場合はエラーにする
if (digits < 0)
{
throw new ArgumentException("digits は0以上を指定してください。");
}
// 念のため空白を取り除く
var result = value.Trim();
// 先頭1文字を取り出す
var sign = result.Length >= 1 ? result.Substring(0, 1) : string.Empty;
// 先頭の文字が符号の場合、処理を分岐
if (sign == "+" || sign == "-")
{
// 先頭の符号を取り除く
result = result.Remove(0, 1);
// 指定桁数で前ゼロ埋め
result = result.PadLeft(digits - 1, '0');
// 先頭に符号を付与
result = sign + result;
}
else
{
// 指定桁数で前ゼロ埋め
result = result.PadLeft(digits, '0');
}
return result;
}
サンプルコードの使用例
string result;
// 結果 = "00000"
result = ZeroPadding("", 5);
// 結果 = "00123"
result = ZeroPadding("123", 5);
// 結果 = "+0123"
result = ZeroPadding("+123", 5);
// 結果 = "-0123"
result = ZeroPadding("-123", 5);

サンプルコードのダウンロード
- サンプルコードの実行には Microsoft Visual Studio 2022 以上のバージョンが必要です。
- Visual Studio 2022 以外のバージョンではプロジェクトを開いた際にファイルの変換が必要な場合があります。その場合は変換後に実行してください。
- Visual Studio インストール時のオプションによっては、ビルドエラー等が発生することがあります。
- サンプルコードのダウンロードや実行によって損害等が発生した場合、理由の如何に関わらず、当方は一切責任を負いません。
ダウンロードリンク
参考資料
- Microsoft公式ドキュメント - String.PadLeft メソッド
- Microsoft公式ドキュメント - String.Trim メソッド
- Microsoft公式ドキュメント - String.Substring メソッド
- Microsoft公式ドキュメント - String.Remove メソッド
検証環境
- .NET 6.0
- Microsoft Visual Studio Enterprise 2022 Version 17.2.6
- Windows 10 Enterprise Version 22H2 OS Build 19045.3803 Experience: Windows Feature Experience Pack 1000.19053.1000.0