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