在toString()的out.format中使用“$”有什么用,以及toString()是如何工作的?

时间:2014-08-01 04:59:13

标签: java tostring

public String toString() 
{
 StringBuffer result = new StringBuffer();
 Formatter out = new Formatter(result);
 out.format("$%.2f%n%d dollars%n%d quarters%n" +"%d dimes%n%d pennies%n",
 total, dollars, quarters, dimes, pennies);
 return result.toString();
}

在这段代码中,为什么使用StringBuffer,Formatter? 如何在类中自动调用toString()而不调用main()?

1 个答案:

答案 0 :(得分:1)

你是对的,代码可以更简洁地编写为

return String.format("$%.2f%n%d dollars%n%d quarters%n%d dimes%n%d pennies%n",
    total, dollars, quarters, dimes, pennies);
  

“$”的用途是什么

这里没有特殊含义(作为格式说明符)。它只是打印一个字面的美元符号。所以你得到的输出就像“$ 2.00”。

  

如何在类中自动调用toString()而不调用main()

生成文本输出的大多数方法(如System.out.println))将任何类型的Object作为参数并自行调用toString。这样可以方便地处理null (通过打印“null”而不是使用NullPointerException崩溃)。