Java 8 StringJoiner es una de las nuevas clases que aparece con Java 8 . Esta versión incluyó muchas novedades y algunas nos pasan a veces desepercibidas. ¿Para que vale un SpringJoiner? . Pues como su nombre indica para fusionar un conjunto de cadenas .
Vamos a ver un ejemplo sencillo de ello.
package com.arquitecturajjava;
import java.util.ArrayList;
import java.util.List;
import java.util.StringJoiner;
public class Principal {
public static void main(String[] args) {
List<String> cadenas=new ArrayList<String>();
cadenas.add("hola");
cadenas.add("que");
cadenas.add("tal");
cadenas.add("estas");
cadenas.add("tu");
cadenas.add("hoy");
StringJoiner agrupar= new StringJoiner(",");
for (String cadena:cadenas) {
agrupar.add(cadena);
}
System.out.println(agrupar.toString());
}
} El resultado se imprimer en la consola
Java 8 StringJoiner y delimitadores
Acabamos de agrupar un conjunto de cadenas como una única cadena separada por comas. El StringJoiner tiene también la ventaja de que se puede inicializar definiendo los limitadores . Es decir el caracter de inicio de la cadena de resultado y el caracter de fin. El código quedaría :
package com.arquitecturajjava;
import java.util.ArrayList;
import java.util.List;
import java.util.StringJoiner;
public class Principal2 {
public static void main(String[] args) {
List<String> cadenas=new ArrayList<String>();
cadenas.add("hola");
cadenas.add("que");
cadenas.add("tal");
cadenas.add("estas");
cadenas.add("tu");
cadenas.add("hoy");
StringJoiner agrupar= new StringJoiner(",","[","]");
for (String cadena:cadenas) {
agrupar.add(cadena);
}
System.out.println(agrupar.toString());
}
}
El resultado es :
Donde realmente brilla StringJoiner es cuando lo combinamos con Java 8 Collectors y generamos la lista usando Streams.
String resultado = cadenas.stream()
.collect(Collectors.joining(",", "[", "]"));
System.out.println(resultado); // [hola,que,tal,estas,tu,hoy]