ホームページ >Java >&#&チュートリアル >Java で文字列のリストを効率的に結合するにはどうすればよいですか?

Java で文字列のリストを効率的に結合するにはどうすればよいですか?

Linda Hamilton
Linda Hamiltonオリジナル
2024-12-24 19:42:11338ブラウズ

How to Efficiently Join a List of Strings in Java?

リスト<文字列>の変換Java の結合文字列へ

JavaScript では、Array.join() メソッドを使用して、配列の要素を単一の文字列に連結する便利な方法を提供します。 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();
}

ただし、Java 8 以降では、より効率的で洗練されたオプションが用意されています。利用可能:

String.join

リストに参加するには

List<String> list = Arrays.asList("foo", "bar", "baz");
String joined = String.join(" and ", list); // "foo and bar and baz"
具体的には、String.join() メソッドを使用できます。

Collectors.joining

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"
String 以外の型の要素を持つコレクションの場合は、Collectors.joining コレクターを次のように使用できます。ストリームAPI:

StringJoiner

StringJoiner joiner = new StringJoiner(", ");
list.stream()
  .forEach(joiner::add);

String joinedFirstNames = joiner.toString(); // "John, Anna, Paul"
追加のカスタマイズ オプションを提供する StringJoiner クラスの使用を検討することもできます:

以上がJava で文字列のリストを効率的に結合するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。