String.format方法如何在java中工作?

时间:2017-06-11 11:00:01

标签: java string format

此方法

String.format("%1$,.2f", new Double(123456789.1011))

返回123,456,789.10

String.format("%4$,.2f", new Double(123456789.1011))

给出了java.util.MissingFormatArgumentException

任何人都可以解释上面代码中发生了什么以及$做了什么吗?

2 个答案:

答案 0 :(得分:1)

$是参数索引:请参阅java-docs Formatter

中的“参数索引”
String.format("%4$,.2f", new Double(123456789.1011))

您的示例失败,因为您只提供一个参数,但是您尝试访问第4个

答案 1 :(得分:1)

String.format("%2$s", 32, "Hello"); // prints: "Hello"

美元之前的整数选择要选择的参数的索引。这里打印第二个参数“Hello” 当你指定4并且只有一个参数时它会给你错误。