Cómo dividir una cadena de caracteres para formar un conjunto en Java

Hassan Saeed 12 octubre 2023
  1. Usa split(delimiter) para dividir la cadena de caracteres a un array en Java
  2. Usa split(regex, limit) para dividir una cadena de caracteres en un array en Java y mantener las cadenas vacías que quedan
Cómo dividir una cadena de caracteres para formar un conjunto en Java

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.

Artículo relacionado - Java String