Java: リストを変換する join()された文字列に質問する

Java: リストを変換する join()された文字列に質問する

JavaScriptにはArray.join()

js>["Bill","Bob","Steve"].join(" and ")
Bill and Bob and Steve

Java にはこのような機能がありますか? 自分で何とかできると思いますStringBuilder:

static public String join(List<String> list, String conjunction)
{
   StringBuilder sb = new StringBuilder();
   boolean first = true;
   for (String item : list)
   {
      if (first)
         first = false;
      else
         sb.append(conjunction);
      sb.append(item);
   }
   return sb.toString();
}

.. しかし、同様のものがすでに JDK の一部になっている場合は、これを行う意味はありません。

ベストアンサー1

String.join

Java 8 では、サードパーティのライブラリなしでこれを実行できます。

文字列のコレクションに参加したい場合は、String.join()方法:

List<String> list = Arrays.asList("foo", "bar", "baz");
String joined = String.join(" and ", list); // "foo and bar and baz"

Collectors.joining

文字列以外の型のコレクションがある場合は、Stream APIを次のように使用できます。コレクターに参加する:

List<Person> list = Arrays.asList(
  new Person("John", "Smith"),
  new Person("Anna", "Martinez"),
  new Person("Paul", "Watson ")
);

String joinedFirstNames = list.stream()
  .map(Person::getFirstName)
  .collect(Collectors.joining(", ")); // "John, Anna, Paul"

StringJoinerクラスも役に立つかもしれません。

おすすめ記事