Java: Dividiendo una cadena

Cuando se programa, a menudo ocurre que hay que llevar datos de una forma a otra. Un ejemplo de ello es la división de cadenas en subconjuntos individuales. La biblioteca estándar de Java le proporciona su propia función para esto, que nos gustaría presentarle aquí.

  • La función split
  • Expresiones regulares

La función split

La clase String le proporciona una función para dividir una cadena en subconjuntos. La firma de la función es la siguiente:

public String[] split(String regex)

Así que la función espera una Cadena como parámetro de entrada y devuelve un array de cadenas. El parámetro de entrada es una expresión regular que especifica dónde debe dividirse la cadena. El siguiente ejemplo ayudará a explicarlo:

String numbers = "31-x-8-x-6-x-12-x-19-x-42";
String[] split = numbers.split("-x-"); // [31, 8, 6, 12, 19, 42]

System.out.println(split[0]); // Devuelve "31"
System.out.println(split[1]); // Devuelve "8"

La cadena números contiene diferentes números, que están separados por un menos. La función miembro split toma este carácter como argumento y devuelve las subcadenas individuales exactamente entre estos caracteres en una matriz. Aquí es importante que la cadena pasada en el argumento sea una expresión regular. Esto significa que si se quiere encontrar un metacaracteres regulares, debe ir precedido de una doble barra invertida (año):

String numbers = "31[-]8[-]6[-]12[-]19[-]42";
String[] split = numbers.split("\]"); // [31, 8, 6, 12, 19, 42]

Metacaracteres de la regla are ( ) { { ^ $ | ? * + . ¡< > - = !

Expresiones regulares

Para cadenas más complicadas, es una buena idea utilizar expresiones regulares en la función split. Incluso si una cadena tiene diferentes tipos de cadenas entre las subcadenas que busca, puede identificar las subcadenas sin problemas.

Cadena números = "31-=dq-8-ab-6-rt-12-xz-19-? -42";
Cadena[] split = numbers.split("-[^0-9]*-"); // [31, 8, 6, 12, 19, 42]

La expresión regular "-[^0-9]*-" encuentra todas las cadenas que no son números y están encerradas por dos signos menos. Estas son exactamente las cadenas en las que se deben separar los números de cadena. Las expresiones regulares a menudo pueden facilitarte la vida como programador, pero tampoco son siempre fáciles de elaborar. Si quiere aprender más sobre las expresiones regulares, le remitimos a la introducción oficial a las expresiones regulares en Java. También puedes buscar el capítulo correspondiente en la isla de Java.