【问题标题】:Formatting toString method格式化 toString 方法
【发布时间】:2015-12-12 13:17:49
【问题描述】:

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

它应该是这样的:

Susan         70     <Average   C
Alexander     80     >Average   B

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

public String toString() {

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

}

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

【问题讨论】:

  • 你得到的输出是什么?

标签: java string methods printf


【解决方案1】:

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

【讨论】:

  • 如果值来自同一类的两个不同实例,那么 OP 将如何做到这一点?
【解决方案2】:

根据你想要达到的目的,你可以简单地使用String#format,例如:

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

哪些输出

Susan      70   <Average     C

更多详情请查看this exampleFormatter

【讨论】:

    【解决方案3】:

    String.format方法返回一个新的String对象,所以你可以使用它而不是printf,例如:

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

    【讨论】:

      【解决方案4】:

      您可以使用 String.format() 并像使用 printf() 一样进行操作

      return String.format("whatever comes here");
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-03-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-12-12
        相关资源
        最近更新 更多