0

谈到标志,javadoc中描述了标志''(空格)将自动插入一个空格,而不是在数字开头的符号“+”。但是,当我尝试它时,它仅在填充格式说明符的第一个可选参数时才有效。

  System.out.printf("% d%n %1$ d%n",0x3);

即使在两个格式化程序中都有一个空格,它只在后一个中有效%1$ d%n,而在前者% d%n中,前导空格表示正数不存在(即使标志 ' ' 处于打开状态)。

发生这种情况有什么具体原因吗?提前致谢。

4

1 回答 1

0

这是该行代码的输出:

 3
  3

两行都有一个前导空格,但是,第二行有两个空格,因为在第二次和第三次转换之间有一个空格,即如果我拆分它String以使其更具可读性:

"% d" + "%n" + " " + "%1$ d" + "%n"
于 2013-04-26T13:10:52.357 回答