Java 8 se viene con todo y ahora vamos a ver la clase StringJoiner. Para que sirve? como su nombre lo indica se utiliza para construir una secuencia de caracteres separados por delimitadores, es decir, puede crear cadenas utilizando algunos delimitadores como "," (coma) y "-" (guión), etc. También podemos usar prefijos y sufijos para la secuencia de caracteres.
StringJoiner se encuentra en el paquete java.util y es una clase que es final y extiende de object.
Tiene 2 constructores:
- StringJoiner(CharSequence delimiter).
- StringJoiner(CharSequence delimiter, CharSequence prefix, CharSequence suffix).
En el primero solo le pasamos el delimitador y en el segundo le pasamos el delimitador, el prefijo y sufijo de la cadena que vamos a formar.
Entre los métodos más importantes podemos nombrar:
- StringJoiner add(CharSequence newElement) : Agrega un elemento
- int length() : cantidad de caracteres.
- StringJoiner merge(StringJoiner other): une 2 secuencias.
- StringJoiner setEmptyValue(CharSequence emptyValue) : Definimos que valor va a retornar si la secuencia en vacía.
- String toString() : Retorna la cadena
Veamos unos ejemplos:
import java.util.*;
class Demo {
public static void main(String args[]) {
StringJoiner sj = new StringJoiner(",");//passing comma (,) as delimiter
StringJoiner sj1 = new StringJoiner("-");//passing hyphen (-) as delimiter
//Adding some string with comma(,) delimiter
sj.add("suresh");
sj.add("gurpreet");
sj.add("piyush");
sj.add("jagdish");
System.out.println(sj);
System.out.println();
//Adding some string with hyphen(-) delimiter
sj1.add("simran");
sj1.add("siya");
sj1.add("khusboo");
sj1.add("barkha");
System.out.println(sj1);
}
}
Output: suresh,gurpreet,piyush,jagdish
simran-siya-khusboo-barkha
Recordemos que System.out.println utiliza el metodo toString para imprimir un objeto.
Veamos un ejemplo con sufijo y prefijo:
import java.util.StringJoiner;
class Demo1 {
public static void main(String args[]) {
//passing , as delimiter and using "(" opening bracket as prefix and ")" closing bracket as suffix.
StringJoiner sj = new StringJoiner(",","(",")");
sj.add("blue");
sj.add("red");
sj.add("pink");
sj.add("white");
System.out.println(sj);
}
}
Output: (blue,red,pink,white)
Veamos ahora un ejemplo con merge:
import java.util.*;
class Demo3 {
public static void main(String args[]) {
//Creating first StringJoiner with delimiter and prefix and suffix
StringJoiner sj1 = new StringJoiner(",","*","*");
sj1.add("rose");
sj1.add("lotus");
System.out.println(sj1);
//Creating second StringJoiner with delimiter and prefix and suffix
StringJoiner sj2 = new StringJoiner(":","*","*");
sj2.add("red");
sj2.add("pink");
System.out.println(sj2);
//Now using merge() method for merging sj1 and sj2 joiners
StringJoiner mrg = sj1.merge(sj2);
System.out.println(mrg);
}
}
Output: *rose,lotus*
*red:pink*
*rose,lous,red:pink*
Y por ultimo un ejemplo integrador:
import java.util.*;
class Demo4 {
public static void main(String args[]){
StringJoiner sj1 = new StringJoiner(",");
/* if StringJoiner is empty then we can print a massage for this StringJoiner by using setEmptyValue(). */
sj1.setEmptyValue("This is empty StringJoiner");
System.out.println(sj1);
System.out.println("add some values");
//now adding some string by using add() method
sj1.add("c++");
sj1.add("html");
System.out.println("added values is: "+sj1);
//After adding values, let's count the length of string by using length() method
int length = sj1.length();
System.out.println("Length of SJ "+length);
}
}
Output: This is empty StringJoiner
add some values
added values is: c++,html
Length of SJ 8