連載
» 2009年09月17日 05時00分 公開

.NET TIPS:数値を0埋めで文字列にするには?(ToString編)[C#、VB]

数値を0埋めで文字列にするだけなら、StringクラスのFormatメソッドより、整数型が持つToStringメソッドの方がシンプルに行える。C#およびVBでの使い方を解説する。

[遠藤孝信,デジタルアドバンテージ]
「.NET TIPS」のインデックス

連載目次

 「TIPS:数値を右詰めや0埋めで文字列化するには?」では、Stringクラス(System名前空間)のFormatメソッドによる数値から文字列への変換について解説しているが、0埋めを行った文字列にするだけなら整数型が持つToStringメソッドでも可能であり、こちらの方がよりシンプルに行える。

 Formatメソッドでは、文字列中に埋め込んだ書式指定項目を置き換えるためインデックス番号や中カッコが必要となるが、ToStringクラスではメソッドの引数に書式を指定するだけである。

ToStringメソッドによる0埋め文字列化

 例えば、ある数値を8けたで0埋めにしたい場合、ToStringメソッドの引数には、「"D8"」あるいは「"00000000"」を指定する。このように、引数に指定する文字列は「D+けた数」とするか、けた数分だけ「0」を並べればよい。

 以下に実際の記述例を示す。

using System;

class ZeroPadding {
  static void Main() {

    string output;
    int myNumber = 12345;

    output = "8けた0埋め:" + myNumber.ToString("00000000");
    Console.WriteLine(output);
    // 出力:8けた0埋め:00012345

    output = "8けた0埋め:" + myNumber.ToString("D8");
    Console.WriteLine(output);
    // 出力:8けた0埋め:00012345
  }
}

Imports System

Class ZeroPadding
  Shared Sub Main

    Dim output As String
    Dim myNumber As Integer = 12345

    output = "8けた0埋め:" & myNumber.ToString("00000000")
    Console.WriteLine(output)
    ' 出力:8けた0埋め:00012345

    output = "8けた0埋め:" & myNumber.ToString("D8")
    Console.WriteLine(output)
    ' 出力:8けた0埋め:00012345

  End Sub
End Class

ToStringメソッドにより数値を0埋めで文字列化(上:C#、下:VB)

 なお、ToStringメソッドによる文字列化ではFormatメソッドのような“右詰め(右寄せ)”はできないが、必要であれば以下のようにStringクラスのPadLeftメソッドを併用すればよい。

output = "8けた右詰め:" + myNumber.ToString().PadLeft(8);
Console.WriteLine(output);
// 8けた右詰め:   12345

output = "8けた右詰め:" & myNumber.ToString().PadLeft(8)
Console.WriteLine(output)
' 8けた右詰め:   12345

PadLeftメソッドにより8けた右詰めで文字列化(上:C#、下:VB)

 PadLeftメソッドは、引数で指定した文字数になるように、文字列の左側を空白で埋めるメソッドである。

カテゴリ:クラス・ライブラリ 処理対象:文字列
使用ライブラリ:Stringクラス(System名前空間)
関連TIPS:数値を右詰めや0埋めで文字列化するには?


「.NET TIPS」のインデックス

.NET TIPS

Copyright© Digital Advantage Corp. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。