标志,System.out.format Java
关于标志,中描述了标志“”(空格)将自动插入一个空格,而不是仅在数字开头插入符号“+”。 但是,当我尝试使用它时,它仅在填充格式说明符的第一个可选参数时才起作用标志,System.out.format Java,java,format,flags,Java,Format,Flags,关于标志,中描述了标志“”(空格)将自动插入一个空格,而不是仅在数字开头插入符号“+”。 但是,当我尝试使用它时,它仅在填充格式说明符的第一个可选参数时才起作用 System.out.printf("% d%n %1$ d%n",0x3); 尽管两个格式化程序中都有一个空格,但它仅在后一个%1$d%n中起作用,而在前一个%d%n中,前导空格表示不存在正数(即使标志“”处于启用状态) 为什么会发生这样的事情,有什么具体的原因吗? 提前感谢。这是该行代码的输出: 3 3 两行都有一个前
System.out.printf("% d%n %1$ d%n",0x3);
尽管两个格式化程序中都有一个空格,但它仅在后一个%1$d%n
中起作用,而在前一个%d%n
中,前导空格表示不存在正数(即使标志“”处于启用状态)
为什么会发生这样的事情,有什么具体的原因吗?
提前感谢。这是该行代码的输出:
3
3
两行都有一个前导空格,但是,第二行有两个空格,因为在第二次和第三次转换之间有一个空格,即如果我拆分字符串
,使其更可读:
"% d" + "%n" + " " + "%1$ d" + "%n"
请尝试System.out.printf(“%d”%n“%1$d”%n“,0x3)代码>以查看错误所在的位置。