Guardar un texto dentro del String, es algo útil.
Pero si solo hacemos eso, es un poco aburrido. 🥱
Por eso, también podemos operar sobre ese texto, es decir, hacer cosas. Veamos cómo hacer varias operaciones útiles.
Concatenar
A partir de Strings individuales se puede crear otro nuevo, que los contenga a todos, unidos. A esta operación se la llama concatenación y se logra usando el símbolo de suma entre las variables.
String a = "Hola";
String b = ", ";
String c = "como estas?";
Concatenamos:
Si vemos el contenido del string d, es el siguiente:
Tamaño
Puede ser que interese saber el tamaño del texto guardado y para ello se usa un método propio llamado length(), que es la palabra inglesa para “largo”.
Es decir, que al usar este método, devuelve un número, que se corresponde con el largo (cantidad de caracteres) del texto almacenado.
Ejemplo:
String c = "Canelones";
int largo = c.length();
El valor que queda guardado en la variable llamada “largo”, es 9, la cantidad de letras de la variable c.
Otras veces puede ser de interés conocer únicamente si el tamaño es 0, es decir, si está vacío y no tiene nada dentro. Para ello se usa el método isEmpty() que devuelve true si el largo es 0 o false, si no lo es.
boolean esOno = c.isEmpty();
Así, la variable "esOno" de tipo booleana, guardará “la respuesta” del método isEmpty() para saber si el String c es vacío.
Igualdad del contenido
Si se quiere saber si el contenido (es decir, el texto) de dos variables de tipo String son el mismo, se usa el método equals().
Este devuelve true si es que tienen el mismo contenido o false en caso de que no.
Teniendo las variables:
String c = "Canelones";
String p = "Paysandu";
Le preguntamos a Java asi:
boolean iguales = c.equals(p);
En este caso, la respuesta, es decir, el valor de iguales, será false, porque no tienen el mismo contenido.
Buscar
A veces, interesa buscar dentro del contenido del texto. Aquí hay algunas formas de hacerlo.
Para todos los casos se usa:
String r = "Rocha es un departamento con muchas playas.";
Búsqueda por posición
El contenido del String es una secuencia de caracteres (letras, números y símbolos) que se pueden identificar por su posición, comenzando por el cero.
Si se quiere saber qué hay en la posición número x, se le puede preguntar al String por medio del método charAt(x) y devuelve un char con el valor en esa posición.
Ejemplo:
char letra4 = r.charAt(4);
La letra que quedará guardada en letra4 sera "a".
Búsqueda por valor
Puede ser que se quiera encontrar un pedacito de texto dentro del String.
Esto es posible usando el método indexOf(), que buscará ese pedacito de texto en el string y (si lo encuentra) devolverá la posición donde comienza.
En caso de aparecer más de una vez, solo informará de la primer aparición.
int posicion = r.indexOf("playas");
Esto dará a la variable posición el valor 36.
Buscar una frase
Otras veces, puede que se necesite saber si el texto contiene determinada palabra o símbolo. Para eso se cuenta con el método contains() que indica con true o false si esta presente la palabra o símbolo en el String.
Ejemplo:
boolean tienePlaya = r.contains("playas");
En este caso, la respuesta es true.
Modificar
El contenido de un String es inmutable. Esto quiere decir, que una vez que metimos el texto en la cajita, esto no va a cambiar nunca.
Otra vez, un escenario aburrido, porque resulta muy interesante la posibilidad de modificarlo. Se muestran algunas formas de obtener algunas modificaciones pero respetando la inmutabilidad.
Consideremos el ejemplo:
String sampayo = """
El Uruguay no es un río
Es un cielo azul que viaja
Pintor de nubes: camino
Con sabor a mieles ruanas
""";
Pasar a mayúsculas
Un texto que tenga letras en mayúsculas y minúsculas puede que interese dejarlo todo en mayúsculas.
Esto se puede lograr con el método toUpperCase() que va a devolver una copia del texto, pasado a mayúsculas.
Esto es, sin modificar el original.
String sampayo2 = sampayo.toUpperCase();
Reemplazar
Puede que interese cambiar letras, palabras o porciones del texto por otras, eso se realiza con el método replace() indicando qué reemplazar con qué.
Suponiendo que se quiere alterar la parte de la canción contenida en la variable sampayo para que haga referencia al Río Cuareim en vez del Uruguay, este sería el código para (de nuevo) obtener una copia alterada, sin tocar el original.
String sampayo3 = sampayo.replace("Uruguay", "Cuareim");