我的类中有一个toString()
方法,它从对象获取信息并将其放入要打印的字符串中。
这应该是这样的:
Susan 70 <Average C
Alexander 80 >Average B
,但我在格式化toString()
方法时遇到问题。这就是现在的情况,这是非常无组织的。
public String toString() {
return ("\n" + fullName +
" " + relativeScore +
" " + testScore);
}
我通常会使用printf,但由于它是一个return语句,我无法使用它。任何帮助将非常感激。
答案 0 :(得分:3)
根据您要实现的目标,您只需使用String#format
,例如:
System.out.println(String.format("%-10s %d %10s %5s", "Susan", 70, "<Average", "C"));
哪个输出
Susan 70 <Average C
有关详细信息,请查看this example和Formatter
答案 1 :(得分:1)
String.format
方法返回一个新的String对象,因此您可以使用它而不是printf
,例如:
public String toString() {
return String.format("%s\t%3d\t%s", fullName, relativeScore, testScore);
}
答案 2 :(得分:0)
您可以使用String.format()
,就像使用printf()
return String.format("whatever comes here");
答案 3 :(得分:0)
你做错了。苏珊是5个字母,亚历山大是9个字母。所以如果苏珊跟着10个白色空格,那么亚历山大应该跟着10-9 + 5 = 6个白色空格。您应该考虑代码中fullname的长度。