此方法
String.format("%1$,.2f", new Double(123456789.1011))
返回123,456,789.10
而
String.format("%4$,.2f", new Double(123456789.1011))
给出了java.util.MissingFormatArgumentException
任何人都可以解释上面代码中发生了什么以及$做了什么吗?
答案 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并且只有一个参数时它会给你错误。