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
Libérer: 2024-12-24 19:42:11
original
485 Les gens l'ont consulté

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();
}
Copier après la connexion

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"
Copier après la connexion

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"
Copier après la connexion

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"
Copier après la connexion

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 de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal