JavaRush /Blog Java /Random-FR /En Java 8, vous pouvez concaténer des chaînes
theGrass
Niveau 24
Саратов

En Java 8, vous pouvez concaténer des chaînes

Publié dans le groupe Random-FR
Je suis sûr que vous avez été dans une situation où vous vouliez concaténer plusieurs lignes. Si vous n'avez pas écrit en Java, vous avez probablement utilisé une fonction join()fournie par le langage de programmation lui-même. Si vous écriviez en Java, vous ne pourriez pas faire cela pour une raison simple : cette méthode n’existait pas. La bibliothèque de classes standard de Java vous a fourni les outils nécessaires pour créer des applications GUI, accéder à des bases de données, envoyer des données sur le réseau, effectuer des transformations XML ou appeler des méthodes à partir de bibliothèques tierces. Une méthode simple pour concaténer une collection de chaînes n’était pas incluse. Pour ce faire, vous aviez besoin de l'une des nombreuses bibliothèques tierces. En Java 8, vous pouvez concaténer des chaînes - 1Heureusement, cela est terminé ! En Java 8, nous pouvons enfin concaténer des chaînes ! Java 8 a ajouté une nouvelle classe appelée StringJoiner. Comme son nom l'indique, nous pouvons utiliser cette classe pour concaténer des chaînes :

StringJoiner joiner = new StringJoiner(",");
joiner.add("foo");
joiner.add("bar");
joiner.add("baz");
String joined = joiner.toString(); // "foo,bar,baz"

// add() calls can be chained
joined = new StringJoiner("-")
.add("foo")
.add("bar")
.add("baz")
.toString(); // "foo-bar-baz"
Stringutilise deux nouvelles méthodes statiquesjoin() StringJoiner :

// join(CharSequence delimiter, CharSequence... elements)
String joined = String.join("/", "2014", "10", "28" ); // "2014/10/28"

// join(CharSequence delimiter, Iterable<? extends CharSequence> elements)
List<String> list = Arrays.asList("foo", "bar", "baz");
joined = String.join(";", list); // «foo;bar;baz"
De plus, pour concaténer des chaînes, il en existe une spéciale Collectordans la nouvelle API utilisant des flux :

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»
De cette façon, nous n’avons vraiment plus besoin de bibliothèques tierces pour concaténer des chaînes ! Article original
Commentaires
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION