Java “有什么用?”$&引用;在toString()的out.format中,以及toString()是如何工作的?
在这段代码中,为什么要使用StringBuffer和Formatter?Java “有什么用?”$&引用;在toString()的out.format中,以及toString()是如何工作的?,java,tostring,Java,Tostring,在这段代码中,为什么要使用StringBuffer和Formatter? 以及如何在类中自动调用toString(),而不必在main()中调用它?您是对的,代码可以编写得更简洁,如下所示: public String toString() { StringBuffer result = new StringBuffer(); Formatter out = new Formatter(result); out.format("$%.2f%n%d dollars%n%d quarters
以及如何在类中自动调用toString(),而不必在main()中调用它?您是对的,代码可以编写得更简洁,如下所示:
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();
}
“$”有什么用
它在这里没有特殊意义(作为格式说明符)。它只是打印一个字面上的美元符号。所以你会得到一个像“$2.00”这样的输出
以及如何在类中自动调用toString(),而不必在main()中调用它
大多数生成文本输出的方法(如
System.out.println)
将任何类型的对象作为参数,并自己调用toString
。这是一种方便,它还可以处理null
(通过打印“null”而不是与NullPointerException崩溃)。有一些方法,如System.out.print
或System.out.println
,它们将自动调用作为参数传递的对象的toString
方法。还有,“$”
不是格式中的特殊字符。
return String.format("$%.2f%n%d dollars%n%d quarters%n%d dimes%n%d pennies%n",
total, dollars, quarters, dimes, pennies);