ホームページ >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 以降では、より効率的で洗練されたオプションが用意されています。利用可能:
リストに参加するには
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 サイトの他の関連記事を参照してください。