LoginSignup
5
5

More than 1 year has passed since last update.

【VB.NET、C#】ゼロ埋めする方法(ゼロパディング)

Posted at

VB.NET、C#でゼロ埋めする方法です。

ゼロ埋め(ゼロパディング)とは?

ゼロ埋めとは、数値を文字として表現する場合に、指定された桁数に足りない桁を0で埋める方法です。ゼロパディングとも言います。

  • 5桁固定
  • 入力:123
  • ゼロ埋め→00123

パディングというのが、「詰め物」や「水増し」という意味です。
IT分野では固定長としてデータを扱う時に、不足分を無意味なデータで補う行為を指します。
ゼロで埋めるならゼロパディングですが、別にゼロで埋める必要はありません。

ゼロ埋めの方法

ゼロ埋めする方法はいくつかあります。

  • PadLeft
  • ToString
  • Format

どれでもいい…と言ってしまうと乱暴ですが、好みの問題です。
コーディング規約でパディングの方法が規定されている現場もあると思いますので、それぞれ知識として知っておいたら良いと思います。

実行確認用テストフォーム

ゼロ埋め確認用のフォームを作成しました。
20211223_001.jpg

  1. 左側のテキストボックスに数字を入力
  2. 実行ボタンをクリック
  3. 右側にゼロ埋めされた結果を表示

実行するとこうなります。
20211223_002.jpg

PadLeft、ToString、Formatのソースコードは以下です。

PadLeft

StringクラスのPadLeftメソッドを用いてゼロ埋めする方法。

'【VB.NET】
Private Sub btnPadLeft_Click(sender As Object, e As EventArgs) Handles btnPadLeft.Click
    'PadLeftで5桁ゼロ埋め
    txtPadLeftAfter.Text = txtPadLeftBefore.Text.PadLeft(5, "0"c)
End Sub
//【C#】
private void btnPadLeft_Click(object sender, EventArgs e)
{
    //PadLeftで5桁ゼロ埋め
    txtPadLeftAfter.Text = txtPadLeftBefore.Text.PadLeft(5, '0');
}

ToString

ToStringでゼロ埋めする方法。

'【VB.NET】
Private Sub btnToString_Click(sender As Object, e As EventArgs) Handles btnToString.Click
    'Integer型の変数に確保(ToStringを使うため)
    Dim iNum As Integer = Integer.Parse(txtToStringBefore.Text)
    'ToStringで5桁ゼロ埋め
    txtToStringAfter.Text = iNum.ToString("00000")
End Sub
//【C#】
private void btnToString_Click(object sender, EventArgs e)
{
    //Integer型の変数に確保(ToStringを使うため)
    int iNum = Int32.Parse(txtToStringBefore.Text);
    //ToStringで5桁ゼロ埋め
    txtToStringAfter.Text = iNum.ToString("00000");
}

Format

StringクラスのFormatメソッドでゼロ埋めする方法。

'【VB.NET】
Private Sub btnFormat_Click(sender As Object, e As EventArgs) Handles btnFormat.Click
    'Integer型の変数に確保(Formatを使うため)
    Dim iNum As Integer = Integer.Parse(txtFormatBefore.Text)
    'Formatで5桁ゼロ埋め
    txtFormatAfter.Text = String.Format("{0:D5}", iNum)
End Sub
//【C#】
private void btnFormat_Click(object sender, EventArgs e)
{
    //Integer型の変数に確保(Formatを使うため)
    int iNum = Int32.Parse(txtFormatBefore.Text);
    //Formatで5桁ゼロ埋め
    txtFormatAfter.Text = String.Format("{0:D5}", iNum);
}

参考

5
5
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
5