¿Cómo usar String.replace() en Java para cambiar múltiples ocurrencias?

| Última modificación: 17 de diciembre de 2024 | Tiempo de Lectura: 3 minutos

Algunos de nuestros reconocimientos:

Premios KeepCoding

Me acuerdo que, mientras estaba aprendiendo a programar con Java, sufría encontrándome con un texto lleno de errores o datos desactualizados, porque para corregirlos tenía que recorrer toda la cadena manualmente. Eso cambió cuando empecé a usar String.replace() en Java, ya que me dejaba reemplazar múltiples caracteres o palabras rápido y fácil. Quiero enseñártelo para facilitarte el trabajo en este lenguaje de programación.

String.replace() en Java qué es

¿Qué es String.replace() en Java?

Para que entiendas bien qué es, quiero explicártelo con una analogía muy sencilla. Piensa que usaste un cuaderno para escribir una historia, pero cuando la terminas, te das cuenta de que varias veces escribiste mal una palabra y, por supuesto, quieres cambiarla por la palabra correcta.

Digamos que String.replace() sería cómo un lapicero mágico que te ayudaría con eso. Con solo una instrucción borraría la palabra incorrecta y la reemplazaría con la correcta a lo largo del texto.

Entonces, String.replace() en Java sirve para reemplazar todas las ocurrencias de un carácter o una subcadena por otra, sin modificar la cadena original.

Su sintaxis es:

public String replace(char searchChar, char newChar)
public String replace(CharSequence target, CharSequence replacement)

Parámetros:

  1. searchChar o target: Es el carácter o subcadena que quieres reemplazar.
  2. newChar o replacement: Se refiere al carácter o subcadena que usarás como reemplazo.

Verás que retorna una nueva cadena con todas las coincidencias reemplazadas.

¿Cómo usar String.replace() en Java? Aprende con ejemplos

Reemplaza un carácter por otro

Este primer ejemplo es básico. Simplemente imagina que tienes una cadena y quieres cambiar todas las letras “a” por “e”.

Hazlo así:

public class ReplaceExample {
    public static void main(String[] args) {
        String texto = "Java es genial";
        String resultado = texto.replace('a', 'e');
        System.out.println(resultado); // Jeve es geniel
    }
}

Reemplaza una subcadena completa

Si quieres cambiar una palabra o frase específica dentro de una cadena, te recomiendo usar String.replace() con subcadenas:

public class ReplaceExample {
    public static void main(String[] args) {
        String frase = "Aprender Java es divertido";
        String resultado = frase.replace("Java", "Python");
        System.out.println(resultado); // Aprender Python es divertido
    }
}

Reemplaza múltiples ocurrencias de una palabra

No olvides que String.replace() en Java reemplaza todas las ocurrencias, no solo la primera. Te lo muestro en este ejemplo:

public class ReplaceExample {
    public static void main(String[] args) {
        String texto = "Hola Hola mundo";
        String resultado = texto.replace("Hola", "Adios");
        System.out.println(resultado); // Adios Adios mundo
    }
}

Reemplaza espacios o caracteres especiales

Algo que también puedes hacer es usar String.replace() para limpiar espacios o caracteres no deseados:

public class ReplaceExample {
    public static void main(String[] args) {
        String texto = "Hola, mundo!";
        String resultado = texto.replace(" ", "-").replace("!", "");
        System.out.println(resultado); // Hola,-mundo
    }
}

Ejemplo con valores vacíos

En caso de que debas eliminar ciertos caracteres, puedes reemplazarlos por un string vacío "":

public class ReplaceExample {
    public static void main(String[] args) {
        String texto = "Java 123";
        String resultado = texto.replace("123", "");
        System.out.println(resultado); // Java
    }
}

Diferencias entre replace() y replaceAll()

No te confundas con replaceAll(). Te explico cómo diferenciarlos:

  • String.replace(): Este reemplaza caracteres o subcadenas exactas.
  • String.replaceAll(): Este utiliza expresiones regulares para hacer reemplazos más complejos.

Ejemplo con replaceAll():

public class ReplaceAllExample {
    public static void main(String[] args) {
        String texto = "123-456-789";
        String resultado = texto.replaceAll("\\d", "*");
        System.out.println(resultado); // ***-***-***
    }
}

¿Viste la diferencia? En este caso, \\d es una expresión regular que coincide con cualquier dígito. Para casos simples, String.replace() es más fácil de usar.

Consejos a la hora de usar String.replace() en Java

Con estos consejos que te dejo aquí, podrás aprovechar al máximo String.replace() en Java:

  1. Recuerda que las cadenas son inmutables: Cada vez que usas replace(), se crea una nueva cadena.
  2. Usa replaceAll() si necesitas expresiones regulares.
  3. Evita llamadas innecesarias: No encadenes replace() si no es necesario; optimiza el código.
  4. Valida los datos: Asegúrate de manejar cadenas vacías o nulas para evitar errores.

Como ves, el método String.replace() en Java te ayudará enormemente a reemplazar caracteres o subcadenas dentro de tus strings. Maneja cambios simples de texto sin problemas, gracias a su sintaxis simple y funcionalidad directa. Además, pon en práctica los ejemplos que te expliqué en tus proyectos.

Nunca volverás a programar igual. Nosotros te enseñaremos todo sobre Java en nuestro Bootcamp de Java Full Stack en KeepCoding. Aprenderás desde las bases hasta conceptos avanzados, preparándote para entrar al sector IT en menos de lo que te imaginas. ¡No esperes más para transformar tu futuro y empezar tu carrera en tecnología! ¡Únete ahora y empieza a programar como un profesional!

Ramón Maldonado

Full Stack Developer y Responsable de Formación base en KeepCoding.

Posts más leídos

¡CONVOCATORIA ABIERTA!

Java y Spring Boot

Full Stack Bootcamp

Clases en Directo | Profesores en Activo | Temario 100% actualizado