数値を0埋めで文字列にするだけなら、StringクラスのFormatメソッドより、整数型が持つToStringメソッドの方がシンプルに行える。C#およびVBでの使い方を解説する。
「TIPS:数値を右詰めや0埋めで文字列化するには?」では、Stringクラス(System名前空間)のFormatメソッドによる数値から文字列への変換について解説しているが、0埋めを行った文字列にするだけなら整数型が持つToStringメソッドでも可能であり、こちらの方がよりシンプルに行える。
Formatメソッドでは、文字列中に埋め込んだ書式指定項目を置き換えるためインデックス番号や中カッコが必要となるが、ToStringクラスではメソッドの引数に書式を指定するだけである。
例えば、ある数値を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メソッドによる文字列化では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メソッドは、引数で指定した文字数になるように、文字列の左側を空白で埋めるメソッドである。
カテゴリ:クラス・ライブラリ 処理対象:文字列
使用ライブラリ:Stringクラス(System名前空間)
関連TIPS:数値を右詰めや0埋めで文字列化するには?
Copyright© Digital Advantage Corp. All Rights Reserved.