Cómo dividir una cadena en Java
Este tutorial trata sobre cómo dividir una cadena en Java.
String
en Java es uno de los tipos de datos no primitivos y se utiliza para almacenar una secuencia de caracteres. Podemos declarar una variable de cadena simplemente de la siguiente manera:
String string = "I am a string";
String string1 = "I am another string";
Podríamos necesitar realizar varias tareas de procesamiento de cadenas, dependiendo de lo que estamos tratando de lograr. Consideremos el caso en el que tenemos una cadena que representa datos en formato CSV, todos separados por una coma.
String data = "Apple,Banana,Orange,Peach";
Queremos todas las cadenas individuales de esto; por lo tanto necesitamos dividir la cadena basada en la coma para separar los datos para obtener la siguiente salida.
> Apple
> Banana
> Orange
> Peach
Las cadenas de Java tienen una función de división por defecto String#split()
que toma una expresión regular como entrada y devuelve un array de cadenas resultantes después de la división en la entrada dada.
El siguiente ejemplo ilustra cómo utilizar este método para dividir una cadena dada en Java.
public class Main {
public static void main(String args[]) {
String data = "Apple,Banana,Orange,Peach";
String[] splitted = data.split(",");
for (int i = 0; i < splitted.length; i++) {
System.out.println(splitted[i]);
}
}
}
El código anterior da como resultado lo siguiente.
Apple
Banana
Orange
Peach
Probemos este método para dividir una cadena en un parámetro diferente.
Dividir en un punto
Esta vez tenemos una cadena como esta: "One.Two.Three.Four"
. Usemos el mismo método de nuevo para dividirla.
public class Main {
public static void main(String args[]) {
String data = "One.Two.Three.Four";
String[] splitted = data.split(".");
for (int i = 0; i < splitted.length; i++) {
System.out.println(splitted[i]);
}
}
}
¡El código anterior no producirá nada! Recadena, mencionamos que la función split
toma un patrón de expresión regular como entrada. Por lo tanto, necesitamos tomar medidas extra cuando queremos dividir en algunos caracteres especiales.
Allí hay 12 caracteres con significados especiales:
- la barra invertida
\
- el caret
^
- el signo del dólar
$
- el punto o punto
.
- el símbolo de barra vertical o tubería
|
- el signo de interrogación
?
- el asterisco o la estrella
*
- el signo más
+
- el paréntesis de apertura
(
- el paréntesis de cierre
)
- y el corchete de apertura
[
- la abrazadera rizada de apertura
{
Estos carácters especiales a menudo se llaman metacaracteres.
Si queremos dividir nuestra cadena en cualquiera de los caracteres anteriores, podemos usar la barra invertida \
para escapar de estos caracteres especiales, así que usa data.split('\\.')
en lugar de data.split('.')
.
public class Main {
public static void main(String args[]) {
String data = "One.Two.Three.Four";
String[] splitted = data.split("\\.");
for (int i = 0; i < splitted.length; i++) {
System.out.println(splitted[i]);
}
}
}
El código anterior ahora sale correctamente:
One
Two
Three
Four
Intentemos un ejemplo más.
Split en una cadena
Esta vez tenemos una cadena como esta: "OneFruitTwoFruitThreeFruit"
. Usemos el mismo método de nuevo para dividirla basándonos en la cadena Fruit
.
public class Main {
public static void main(String args[]) {
String data = "OneFruitTwoFruitThreeFruit";
String[] splitted = data.split("Fruit");
for (int i = 0; i < splitted.length; i++) {
System.out.println(splitted[i]);
}
}
}
El código anterior da como resultado:
One
Two
Three
Ahora sabemos cómo dividir una cadena en Java en cualquier parámetro dado.