2017年4月27日木曜日

小さなことだが大きい:リスト出力で最後にカンマを付けない

 今回は、Java SE8のあるチップスについて書きます。ご存じの方も多いかも知れませんが、知らないと損します。「何らかのコレクション(リストなど)の要素をカンマで区切って並べて出力する際に、最後にカンマを付けたくない!」です。例えば、以下のリストを考えます。

final List<String> planet = 
Arrays.asList("水星", "金星", "地球", "火星", "木星");

方法1 ----------------------------------------
 これだと、最後の要素の後ろにも", "が付いてしまいます。
for(String name: planet)
System.out.print(name + ", ");
System.out.println();

出力結果:水星, 金星, 地球, 火星, 木星,


方法2 ----------------------------------------
 最後の要素の後ろに", "が付かないようにしました。but、美しくない!
for(int i = 0; i < planet.size() -1; i++)
System.out.printf(planet.get(i) + ", ");
if(planet.size() > 0)
System.out.println(planet.get(planet.size() -1));

出力結果:水星, 金星, 地球, 火星, 木星


方法3 ----------------------------------------
 SE8のString.joinを使うと一発です。SE8のstream処理にも適する。美しい!
System.out.println(String.join(", ", planet));

出力結果:水星, 金星, 地球, 火星, 木星

0 件のコメント:

コメントを投稿