我有一个toString,它需要打印很多东西,包括一个包含多个条目的Arraylist。这些条目必须用新行分隔。这是我现在正在使用的toString代码:

@Override
public String toString() // Displays the info for a class
    {
        return getCourseId() + "\n" + getCourseName() + "\n" + getCourseCode()
            + "\n" + "\n" + "Instructor" + "\n" + "-------------------------"
            + "\n" + Instructor.toString() + "\n" + "\n" + "Student Roster"
            + "\n" + "-------------------------" + "\n" + roster;
    }


名册确实会打印,但是所有条目都在同一行中,并带有方括号和逗号。

我的老师坚持说toString必须是独立的,所以我在toString中拥有的所有内容目前都必须呆在那里。

名册打印如下:

@Override
public String toString() // Displays the info for a person in order
    {
        return getPersonId() + "\t" + getLastName() + "\t" + getFirstName()
            + "\t" + getMajor() + "\t" + getGpa();
    }


当前,我得到的输出看起来像这样:

10000
College Algebra
MATH 101

Instructor
-------------------------
X00009876   Jones   Jane    Associate Professor Mathematics

Student Roster
-------------------------
[X00000002  Smith   Sally   History         2.98, X00000003 Adams   Amanda     Civil Engineering    3.7, X00000005  Turner  Thomas  Nursing         2.34]


但我希望它看起来像这样:

10000
College Algebra
MATH 101

Instructor
-------------------------
X00009876   Jones   Jane    Associate Professor Mathematics

Student Roster
-------------------------
X00000002   Smith   Sally   History         2.98
X00000003   Adams   Amanda     Civil Engineering    3.7
X00000005   Turner  Thomas  Nursing         2.34


任何建议将不胜感激。谢谢!

最佳答案

尝试这个:

String rosterStr = roster.stream()
        .map(r -> r.toString())
        .collect(Collectors.joining("\n"))


它将获取花名册中每个值的字符串,然后将它们与换行符连接

10-07 19:20
查看更多