哪种格式打印带有前导空格的数字?

Which format to print the number with leading spaces?

输入:

3
100
12 

输出:

      003
      100
      012

我需要在 10 个空格后打印数字,然后使用格式说明符从第 11 个位置开始打印数字,如图所示。我试过 %013d 格式说明符,但输出包含尾随零,但我需要空格。

如果您将号码存储为 int x,则只需使用:

System.out.format("          %03d", x);

如果您有一个 String text = "test"; 希望包含在数字前的前 10 个字符中(假设其长度小于 10),那么您可以执行以下操作:

System.out.format("%10s%03d", text, x);

这将打印:

      test003

如果你想让text出现在字符串的开头,那么使用:

System.out.format("%-10s%03d", text, x);

这将打印:

test      003

您可以像这样使用两次格式:

System.out.format("%13s", String.format("%03d", x));

因此,首先将数字格式化为以 0 填充的字符串,然后将此字符串格式化为以 space 填充的字符串。