javaでrubyのjoinメソッドのような文字列処理をする

配列から,で区切られた文字列を得たい場合、rubyならjoin*が使える。
pryで使ってみるとこんな感じ。

2.1.5 (main):0 > %w(ruby java javascript).join(',')
=> "ruby,java,javascript"
2.1.5 (main):0 > %w(ruby java javascript) * ','
=> "ruby,java,javascript"

さて、javaではどうするのかと調べたらjava7まで標準ライブラリにはなく、自前で実装するか外部ライブラリを使うしかなかったっぽい。

String.join

が、java8からはString.joinが使える。

使ってみる。

String[] strings = {"ruby","java","javascript"};
System.out.println(String.join(",", strings));

わかりやすい。

StringJoiner

String.joinの処理はStringJoinerクラスがほとんど行っているのでStringJoinerクラスでも同様にできる。

String[] strings = {"ruby","java","javascript"};
StringJoiner sj = new StringJoiner(",");
for(String s:strings){
  sj.add(s);
}
System.out.println(sj.toString());