我正在使用format()
和printf()
方法进行格式化字符串的示例练习。
这是一个例子,其输出我很困惑请求帮助。
int i2= 12345;
//Total length of the argument should be 7 and pad with zeros
System.out.printf(">%0,7d< \N",i2);
输出
>012,345<
如果我们看到,论证的长度是六。但分隔符是否也计入了 它的长度。如果不是那么输出应该是我的意思。
>001,2345<
请帮助澄清这个疑问。
答案 0 :(得分:3)
Formatter
的javadoc页面没有提到在解释宽度时对分隔符进行分组的任何特殊处理,它只是讨论字符的数量:
可选宽度是一个非负十进制整数,表示要写入输出的最小字符数。
答案 1 :(得分:1)
您使用逗号并打印整数,这意味着'7'是宽度而不是精度。宽度值是指整个格式化的字符串,包括前导零,空格,逗号,小数和负号。
答案 2 :(得分:0)