2016-05-06 16 views
0

質問:私は(文字列ビルダ)とこれに代えて、私の文字列はこのように見えるようにするにはどうすればよいToStringメソッド - の書式(文字列ビルダ)

何であるようになります:

「アサシンクリードIV:「にリリース、:2013年11月29日

"黒旗チャイルドオブライト" にリリース、:2014年5月1日

"ドラゴンエイジ:12月18日:にリリース異端審問"、 、2014

私はStringBuilderのいくつかの形式を使用する必要がありますが、私はそれをどのようにフォーマットするのか分かりません。

[「アサシンクリードIV:ブラックフラッグ」、にリリース:2013年11月29日「光の子」、にリリース:5月01鉱山がどのように見えるか

:私のゲームのように印刷しているとして、 2014年 「ドラゴンエイジ:異端審問」をリリース、:2014年12月18日]以下

日付はすべての罰金登場しているところ、私のコードスニップ - それはちょうど彼らが複数行

@Override 
public String toString() { 
    DateFormat date = new SimpleDateFormat("MMM dd, yyyy"); 
     return("\"" + game + "\"" + ", " + "released on: " + date.format(released.getTime())); 
} 
+0

リストの各要素に対してtoStringを呼び出していますか?あなたのtoString()が正しいかのように見えますが、toStringを呼び出すたびに改行文字を追加するだけです。 –

+0

リンクリストで印刷するので、最後に新しい行(/ n)を追加すると空白になります最後にすべて一緒にconcatinated – PeterP1989

+0

これを解決する一つの方法は、各項目、すなわちmyList.forEach(System.out :: println) –

答えて

0
上に分割されていないです

問題各要素のtoStringの間に改行を追加していないコレクションでtoStringを呼び出すということです。

代わりに、コレクションを繰り返し処理し、各アイテムのSystem.out.printlnを呼び出します。

別の解決策は、あなたがしたので

myList.stream().map(g -> g.toString()).collect(Collectors.joining("\n")) 
0

区切り文字の例として、「\ n」を使用して一緒にストリームに一覧をひそかし、そのtoStringの各項目をマッピングするためのストリームAPIを使用して、収集することですtoStringメソッドが宣言されているクラスを教えてください。ClassAとします。

あなたは、ClassAオブジェクトを格納するリンクリストを使用しているというコメントに述べました。だから私は、リンクリストの各項目を印刷する方法を紹介します:

StringBuilder builder = new StringBuilder(); // StringBuilder is used to concatenate all the items in the list 
for (ClassA item : theLinkedList) { 
    builder.append(item.toString()); 
    builder.append("\n"); // Here I add the new line 
} 
System.out.println(builder); 

あなたがJava8を使用している場合は、streamを使用することができますし、 `ジーン・テイラーの答えで提案されているように、同様にこれを行うにマップします。はるかにエレガントです。

+0

私は私が見ることができるSystem.out.printlnを呼び出すリストを反復することですそれはgamingListと呼ばれるクラス名を追加しませんでした、どのように日付で動作しますが、 – PeterP1989