Maison >Java >javaDidacticiel >Comment rejoindre efficacement une liste de chaînes en Java ?
En JavaScript, la méthode Array.join() offre un moyen pratique de concaténer les éléments d'un tableau en une seule chaîne. Java offre-t-il une fonctionnalité similaire ?
Si vous souhaitez créer une telle fonctionnalité à partir de zéro, vous pouvez utiliser 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(); }
Cependant, depuis Java 8, des options plus efficaces et plus élégantes sont disponible :
Pour rejoindre une liste
List<String> list = Arrays.asList("foo", "bar", "baz"); String joined = String.join(" and ", list); // "foo and bar and baz"
Pour les collections contenant des éléments de types autres que String, vous pouvez utiliser le collecteur Collectors.joining avec l'API Stream :
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"
Vous pouvez également envisager d'utiliser la classe StringJoiner, qui propose options de personnalisation supplémentaires :
StringJoiner joiner = new StringJoiner(", "); list.stream() .forEach(joiner::add); String joinedFirstNames = joiner.toString(); // "John, Anna, Paul"
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!