Maison >Java >javaDidacticiel >Comment puis-je concaténer efficacement des listes de chaînes en Java ?

Comment puis-je concaténer efficacement des listes de chaînes en Java ?

Susan Sarandon
Susan Sarandonoriginal
2024-12-25 20:38:16941parcourir

How Can I Efficiently Concatenate Lists of Strings in Java?

Java : concaténer efficacement des listes de chaînes

En Java, il existe plusieurs façons de combiner plusieurs chaînes d'une liste en une seule chaîne. Bien que l'on puisse créer manuellement une boucle et ajouter chaque chaîne à un StringBuilder, en vérifiant la première chaîne et en ajoutant un séparateur en conséquence, cette approche peut être lourde.

Présentation de String.join()

Java 8 a introduit la méthode String.join(), qui fournit un moyen concis de concaténer une collection de chaînes. Sa syntaxe est la suivante :

public static String join(CharSequence delimiter, Iterable<? extends CharSequence> elements)

Où :

  • delimiter : Le séparateur à placer entre chaque élément dans la chaîne de sortie
  • elements : Une collection itérable de CharSequences (c'est-à-dire des chaînes) à être join

Exemple avec String.join()

Pour rejoindre une liste de chaînes à l'aide de String.join() :

List<String> names = Arrays.asList("Josh", "Sarah", "David");
String joinedNames = String.join(", ", names); // "Josh, Sarah, David"

Collectors.joining() pour les éléments non-chaînes

Pour les collections de éléments non String, vous pouvez exploiter la méthode Collectors.joining() en conjonction avec l'API stream :

List<Person> people = Arrays.asList(
    new Person("John", "Smith"),
    new Person("Anna", "Martinez"),
    new Person("Paul", "Watson")
);

String joinedFirstNames = people.stream()
    .map(Person::getFirstName)
    .collect(Collectors.joining(", ")); // "John, Anna, Paul"

StringJoiner pour plus de contrôle

La classe StringJoiner offre encore plus de contrôle sur le processus de concaténation. Il permet de définir des préfixes, des suffixes et des délimiteurs pour la chaîne résultante. Sa syntaxe est :

public class StringJoiner {
    StringJoiner(CharSequence delimiter)
}

Exemple avec StringJoiner

StringJoiner joiner = new StringJoiner(", ", "[", "]");
joiner.add("Apple");
joiner.add("Orange");
joiner.add("Banana");

String result = joiner.toString(); // "[Apple, Orange, Banana]"

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