Estoy seguro de que has estado en una situación en la que querías concatenar varias líneas. Si no escribiste en Java, entonces probablemente usaste una función
join()
que te proporcionó el propio lenguaje de programación. Si escribieras en Java, no podrías hacer esto por una sencilla razón: este método no existía. La biblioteca de clases estándar en Java le proporcionó las herramientas para crear aplicaciones GUI, acceder a bases de datos, enviar datos a través de la red, realizar transformaciones XML o llamar a métodos desde bibliotecas de terceros. No se incluyó un método simple para concatenar una colección de cadenas. Para hacer esto, necesitaba una de las muchas bibliotecas de terceros. ¡Afortunadamente esto ha llegado a su fin! ¡En Java 8 finalmente podemos concatenar cadenas! Java 8 agregó una nueva clase llamada StringJoiner
. Como sugiere el nombre, podemos usar esta clase para concatenar cadenas:
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"
String
utiliza dos nuevos métodos estáticos join() 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"
Además, para concatenar cadenas hay uno especial Collector
en la nueva API que usa streams:
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 esta manera ya no necesitamos bibliotecas de terceros para concatenar cadenas! Artículo original
GO TO FULL VERSION