2016-04-16 29 views
0

我有一個需要打印大量內容的toString,其中包含一個包含多個條目的Arraylist。這些條目必須用新行分隔。下面是我與現在工作的toString代碼:在toString中用分隔每個條目的新行打印Arraylist

@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 

任何建議將不勝感激。謝謝!

+0

@ dimo414,我覺得OP以前張貼的問題[打印在用的toString分開每個條目線的ArrayList(http://stackoverflow.com/questions/ 36625109 /印刷-AN-數組列表合的toString-與線分離-每個條目?RQ = 1)。這個問題中的解決方案有沒有什麼原因沒有幫助? – KevinO

回答

0

使用此代碼對名冊:

... + roster.stream().collect(Collectors.joining("\n")) 
0

要麼使用

roster.stream().collect(Collectors.joining("\n")) 

String.join("\n", roster) 
0

所以,我想通了,我的問題。我必須刪除return語句並將其放在最後,以便我可以放置for-each循環並打印我的Arraylist。下面是最終的代碼是什麼樣子:

@Override 
public String toString() // Displays the info for a class 
    {    

     System.out.print(getCourseId() + "\n" + getCourseName() + "\n" + getCourseCode() 
      + "\n" + "\n" + "Instructor" + "\n" + "-------------------------" 
      + "\n" + Instructor.toString() + "\n" + "\n" + "Student Roster" 
      + "\n" + "-------------------------" + "\n"); 
       roster.stream().forEach((tmp) -> { // for each student, put 
        System.out.println(tmp);  // them on a new line 
    }); 

     return ""; 
    } 
相關問題