+0

Trucos para manipular un String en Java 21

Duration: 8m 55s



Vamos a ver cómo manipular Strings en Java. Los Strings son un poco más complejos que los números, ya que son letras. Verás unos cuantos métodos y trucos para que te sientas más cómodo tratando Strings.

Un método es una función dentro de una clase, también conocido en el nivel actual como las palabras que aparecen después de poner un punto:

Ejemplo de que son los métodos

Ejemplo de que son los métodos

Juntar

Para juntar dos Strings, podemos usar el símbolo +. Este es el único operador que funciona con Strings en Java.

String a = "Hola";
String b = "mundo";
 
// Vemos que para separar las palabras hay que poner un espacio, ya que ni en a, ni en b, tenemos un espacio.
String holaMundo = a + " " + b; // holaMundo será "Hola mundo". 

Juntar un String con otro objeto o variable que no sea String, lo intentará convertir a String.

Format

Si queremos colocar variables dentro de un String de forma sencilla, podemos usar String.format(). Este se usa pasando un String con %s donde queramos que haya una variable, y luego pasando las variables.

String a = "Hola";
String b = "mundo";
 
String holaMundo = String.format("¡%s, %s!", a, b); // holaMundo será "¡Hola, mundo!"

Length

Para obtener el tamaño de un String (la cantidad de caracteres que tiene), podemos usar el método .length(), que nos devolverá un int.

String prueba = "Buenos días";
 
int caracteres = prueba.length(); // caracteres será 11

Empty

Para comprobar si un String está vacío, en vez de comparar la longitud con length(), usaremos .isEmpty(), o si encima quieres descartar el String porque esté vacío y con espacios, usaremos .isBlank().

String vacio = "";
String espacios = "     ";
 
boolean estaVacio = vacio.isEmpty(); // estaVacio será true
boolean vacioOEspacios = espacios.isBlank(); // vacioOEspacios será true

Equals

Para poder comprobar si dos Strings son exactamente iguales, podemos usar el método .equals().

String a = "hola";
 
boolean iguales = a.equals(a); // iguales será true

Ahora bien, ¿qué pasa realmente si son iguales, pero tienen diferentes mayúsculas o minúsculas? Muy sencillo, para eso existe el método .equalsIgnoreCase().

String a = "hola";
String b = "HolA";
 
boolean iguales = a.equals(b); // iguales será false
boolean igualesNoSensible = a.equalsIgnoreCase(b); // igualesNoSensible será true

Avisar que, como ya he mencionado anteriormente, usar == hará que se compare la dirección del objeto, no el objeto en sí.

Mayúsculas y minúsculas

Si quieres cambiar todo el String a mayúsculas puedes usar .toUpperCase(). O si quieres lo contrario, pasarlo a minúsculas, puedes usar .toLowerCase().

String a = "BuenAs, TARdEs";
 
String mayusculas = a.toUpperCase(); // mayusculas será "BUENAS, TARDES"
String minusculas = a.toLowerCase(); // minusculas será "buenas, tardes"

Trim

A veces los usuarios, o nosotros por error, podemos introducir Strings al programa con espacios al inicio o al final. Está claro que si necesitamos calcular o comprobar algo relativo al tamaño, o si simplemente queremos limpiar el String, hemos de quitar estos espacios.

La solución es usar .trim().

String sucio = "    hola mundo     ";
 
String limpio = sucio.trim(); // limpio será "hola mundo"

Substring

La función substring se utiliza para extraer una parte de un String basándose en su posición. Se especifican dos índices: el índice inicial (inclusive) y el índice final (exclusivo). Esto significa que el carácter en el índice inicial será incluido en el resultado, pero el carácter en el índice final no lo será.

String frase = "La vida es bella";
 
String subFrase = frase.substring(3, 7); // subFrase será "vida"

Aquí, substring(3, 7) extrae los caracteres desde el índice 3 (incluido) hasta el índice 7 (excluido) de la cadena frase.

Index Of

El método indexOf se utiliza para encontrar la posición de la primera ocurrencia de un carácter o una cadena dentro de otra cadena. Si la cadena no se encuentra, devuelve -1.

String frase = "La vida es bella";
 
int indice = frase.indexOf("vida"); // indice será 3

Aquí, indexOf("vida") busca la primera aparición de "vida" dentro de frase y devuelve su índice, que es 3 en este caso.

Replace

El método replaceAll se utiliza para reemplazar todas las ocurrencias de un String con otro String.

String frase = "La vida es bella";
 
String nuevaFrase = frase.replaceAll("vida", "existencia"); // nuevaFrase será "La existencia es bella"

Aquí, replaceAll("vida", "existencia") reemplaza todas las ocurrencias de "vida" con "existencia" en el String frase.

Comparación lexicográfica

Para comparar lexicográficamente dos palabras, o Strings, podemos usar .compareTo(), o si queremos hacer la comparación ignorando las mayúsculas o minúsculas, podemos usar .compareToIgnoreCase().

String palabra1 = "perro";
String palabra2 = "gato";
 
int comparacion = palabra1.compareTo(palabra2);
 
if (comparacion < 0) {
    // palabra1 viene antes que palabra2 en orden lexicográfico.
} else if (comparacion > 0) {
    // palabra2 viene antes que palabra1 en orden lexicográfico.
} else {
    // palabra1 y palabra2 son iguales lexicográficamente.
}

Transformaciones

Para transformar un String a un int o double, podemos usar Integer.parseInt(string) o Double.parseDouble(string).

String numeroTexto = "10";
int numero = Integer.parseInt(numeroTexto); // numero será 10 en int

Si queremos transformar cualquier variable a String, podemos usar String.valueOf(variable).

int numero = 10;
String numeroTexto = String.valueOf(numero); // numeroTexto será "10"