在谈论标志时,javadoc中描述了标志''(空格)将自动插入一个空格而不是号码开头的“+”号。 但是,当我尝试它时,它仅在格式说明符的第一个可选参数被填充时起作用。
System.out.printf("% d%n %1$ d%n",0x3);
即使两个格式化程序中都有一个空格,但它仅适用于后一个%1$ d%n
,而在前一个% d%n
中,前导空格空间意味着正数不存在(即使旗帜''开启了)。
有没有具体的理由为什么会这样? 提前谢谢。
答案 0 :(得分:0)
以下是该行代码的输出:
3
3
两行都有一个前导空格,但是,第二行有两个空格,因为你在第二次和第三次转换之间有一个空格,即如果我拆分String
以使其更具可读性:
"% d" + "%n" + " " + "%1$ d" + "%n"