使用String.format
%5
,我会得到带空格的输出作为输出1. %05
,我会将输出作为输出2。为什么输出1个打印空间而不是填充号?
Output 1 :: 12 (String str = String.format("%5d", 12);)
Output 2 :: 00012 (String str = String.format("%05d", 12);)
输出2是正确的。但我的问题是需要什么?0' 0与'%'?
答案 0 :(得分:1)
当String.format
重定向到Formatter page
时,您可以找到有关数字的语法,更重要的是标志:
标志
' 0' - 除非转换NaN或无穷大,否则需要在任何符号或基数指示符之后用前导零填充输出到最小字段宽度。如果未提供宽度,则将抛出MissingFormatWidthException。 ...
这解释了为什么你有领先' 0'
然后,您有默认样式,如果您没有指定它,
输出在宽度
内右对齐
所以它默认使用右对齐的空格,或者' 0'如果你问领先0。