格式化toString方法

时间:2015-09-16 05:24:09

标签: java string methods printf

我的类中有一个toString()方法,它从对象获取信息并将其放入要打印的字符串中。

这应该是这样的:

Susan         70     <Average   C
Alexander     80     >Average   B

,但我在格式化toString()方法时遇到问题。这就是现在的情况,这是非常无组织的。

public String toString() {

    return ("\n" + fullName + 
            "            " + relativeScore +
            "            " + testScore);

}

我通常会使用printf,但由于它是一个return语句,我无法使用它。任何帮助将非常感激。

4 个答案:

答案 0 :(得分:3)

根据您要实现的目标,您只需使用String#format,例如:

System.out.println(String.format("%-10s %d %10s %5s", "Susan", 70, "<Average", "C"));

哪个输出

Susan      70   <Average     C

有关详细信息,请查看this exampleFormatter

答案 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的长度。