Javaでprintfを使用してスペースの代わりに文字をパディングする方法


以下に、シンプルで簡単な方法とコード例を示します。

  1. パディング文字を指定する方法 printfメソッドのフォーマット文字列内で、パディング文字として特定の文字を指定します。通常、パディングにはスペースが使用されますが、他の文字を使用することもできます。

例えば、文字 'X' を使用してパディングする場合は、次のように書きます。

int value = 42;
System.out.printf("%10d", value); // パディング文字 'X' を指定

上記のコードでは、変数 value の値を10桁の幅で表示しています。パディング文字としてスペースが使用される代わりに、文字 'X' が使用されます。結果は次のようになります。

XXXXXXXX42
  1. パディング文字列を動的に指定する方法 パディング文字を動的に指定する場合は、フォーマット文字列内で %n$ の形式を使用します。ここで、n はパディング文字の引数インデックスを表します。

例えば、変数 paddingChar に格納された文字を使用してパディングする場合は、次のように書きます。

int value = 42;
char paddingChar = 'X';
System.out.printf("%1$c%2$10d", paddingChar, value); // パディング文字列を動的に指定

上記のコードでは、変数 paddingChar の値をパディング文字として使用し、変数 value の値を10桁の幅で表示しています。結果は次のようになります。

XXXXXXXX42