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