Cómo dividir una cadena de caracteres para formar un conjunto en Java
-
Usa
split(delimiter)
para dividir la cadena de caracteres a un array en Java -
Usa
split(regex, limit)
para dividir una cadena de caracteres en un array en Java y mantener las cadenas vacías que quedan
Este tutorial discute los métodos para dividir la cadena de caracteres en un array en Java.
Supongamos que tenemos una cadena de caracteres separada por comas John, 23, $4500
. Necesitamos dividir los datos basados en la coma y almacenarlos en un array como este: ["John", "23", "$4500"]
. Aquí es donde el método split()
es útil.
Usa split(delimiter)
para dividir la cadena de caracteres a un array en Java
Necesitamos pasar el delimitador para dividir la cadena de caracteres en base a él. El método split()
rompería la cadena de caracteres en cada ocurrencia del delimitador y almacenaría cada valor en el array. El siguiente ejemplo ilustra esto.
public class MyClass {
public static void main(String args[]) {
String data = "1,2,3,,5,6,,";
String[] split = data.split(",");
for (int i = 0; i < split.length; i++) System.out.println(split[i]);
System.out.println("Done");
}
}
Resultado:
1
2
3
5
6
Aunque tenemos dos cadenas vacías al final, el array resultante no contiene las dos últimas cadenas vacías. Es porque el comportamiento por defecto de split()
elimina todas las cadenas vacías del array resultante.
Usa split(regex, limit)
para dividir una cadena de caracteres en un array en Java y mantener las cadenas vacías que quedan
Podemos anular este comportamiento pasando un parámetro adicional a la función split()
: split(regex, limit)
. Pasar un limit
negativo aseguraría que el patrón regex se aplique tantas veces como sea posible, incluyendo así todas las cadenas vacías de la división.
El siguiente ejemplo ilustra esto:
public class MyClass {
public static void main(String args[]) {
String data = "1,2,3,,5,6,,";
String[] split = data.split(",", -1);
for (int i = 0; i < split.length; i++) System.out.println(split[i]);
System.out.println("Done");
}
}
Resultado:
1
2
3
5
6
Done
Podemos ver que ahora ha impreso las dos últimas cadenas vacías que quedan.