有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java格式化toString方法

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

它应该是这样的:

Susan         70     <Average   C
Alexander     80     >Average   B

,但我在格式化toString()方法时遇到问题。这就是现在看起来的样子,非常杂乱无章

public String toString() {

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

}

我通常会使用printf,但因为它是一个返回语句,所以我不能使用它。任何帮助都将不胜感激


共 (4) 个答案

  1. # 1 楼答案

    你可以使用String.format(),然后像使用printf()一样使用它

    return String.format("whatever comes here");
    
  2. # 2 楼答案

    你做得不对。Susan是5个字母的单词,Alexander是9个字母的单词。所以如果susan后面跟10个空格,那么alexander后面应该跟10-9+5=6个空格。您应该考虑代码中的全名长度。

  3. # 3 楼答案

    根据您想要实现的目标,您可以简单地使用String#format,例如:

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

    哪个输出

    Susan      70   <Average     C
    

    有关更多详细信息,请查看this example^{}

  4. # 4 楼答案

    String.format方法返回一个新的字符串对象,因此您可以使用它而不是printf,例如:

    public String toString() {
        return String.format("%s\t%3d\t%s", fullName, relativeScore, testScore);
    }