2016-04-16 5 views
0

複数のエントリを含むArraylistを含む多くのものを印刷する必要があるtoStringがあります。これらのエントリは新しい行で区切られなければなりません。ここで私は今で働いていた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

、私は([各エントリを分離するラインとのtoStringでのArrayListを印刷] OPは前に質問を掲載していると思いますhttp://stackoverflow.com/questions/ 36625109 /行頭区切り - 各エントリにrar = 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を印刷する必要がありました。ここでは、最終的なコードは次のように見えたものだ:dimo414 @

@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 ""; 
    } 
関連する問題