Maison >Java >javaDidacticiel >Comment rejoindre efficacement une liste de chaînes en Java ?

Comment rejoindre efficacement une liste de chaînes en Java ?

Linda Hamilton
Linda Hamiltonoriginal
2024-12-24 19:42:11338parcourir

How to Efficiently Join a List of Strings in Java?

Conversion d'une liste à une chaîne jointe 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 :

String.join

Pour rejoindre une liste plus précisément, vous pouvez utiliser la méthode String.join() :

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

Collectors.joining

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"

StringJoiner

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn