10進数・16進数に限れば、ToStringメソッドやConsole.WriteLineメソッドなどの書式を指定できる文字列化メソッドを使うことでも文字列化することができます。 これらのメソッドで10進形式(D
)・16進形式(X
)を表す書式指定文字列を指定すれば、その書式に基づいて文字列化されます。 これらに加えて、.NET 8以降であれば2進形式(B
)の書式指定文字列も使用できます。
ToStringメソッドを使って0埋め・桁揃えした10進・16進・2進形式で文字列化する .NET 8
Imports System
Module Sample
Sub Main()
Dim n As Integer = 123
' ToStringメソッドに書式を指定して文字列化
Console.WriteLine("format = D : {0}", n.ToString("D")) ' 10進数表記で数値nを文字列化
Console.WriteLine("format = X : {0}", n.ToString("X")) ' 16進数表記で数値nを文字列化(A-Fを大文字で表記)
Console.WriteLine("format = x : {0}", n.ToString("x")) ' 16進数表記で数値nを文字列化(a-fを小文字で表記)
Console.WriteLine("format = D8: {0}", n.ToString("D8")) ' 10進数表記で数値nを文字列化(桁数8で0埋め)
Console.WriteLine("format = B : {0}", n.ToString("B")) ' 2進数表記で数値nを文字列化(.NET 8以降で使用可能)
Console.WriteLine("format = X8: {0}", n.ToString("X8")) ' 16進数表記で数値nを文字列化(A-Fを大文字で表記・桁数8で0埋め)
Console.WriteLine("format = x8: {0}", n.ToString("x8")) ' 16進数表記で数値nを文字列化(a-fを小文字で表記・桁数8で0埋め)
Console.WriteLine("format = B8: {0}", n.ToString("B8")) ' 2進数表記で数値nを文字列化(桁数8で0埋め・.NET 8以降で使用可能)
End Sub
End Module
実行結果
format = D : 123 format = X : 7B format = x : 7b format = D8: 00000123 format = B : 1111011 format = X8: 0000007B format = x8: 0000007b format = B8: 01111011
また、複合書式指定を使用することで、0埋め・桁揃えも同時に行うことができます。 複合書式指定は、Consoleクラス・StreamWriterクラス・StringBuilderクラスのWriteLine等のメソッドでサポートされます。 (書式指定子 §.書式化に対応したメソッドと書式指定子)
複合書式指定において、alignmentに正の値を指定すると右揃え、負の値を指定すると左揃えとなります。
複合書式指定は、文字列補間($"..."
形式の文字列リテラル内)でも使用することができます。 文字列補間は、C# 6.0/VB 14以降で使用できます。