Dominando el reemplazo de Strings en Java: replace(), replaceAll() y replaceFirst() explicados
La clase String de Java ofrece tres potentes métodos de reemplazo que te permiten modificar texto eficientemente: replace(), replaceAll() y replaceFirst(). Cada uno sirve a un propósito distinto y está optimizado para diferentes casos de uso.
Java String replace()
El método replace() realiza una sustitución directa de carácter o cadena. Escanea toda la cadena y reemplaza cada ocurrencia del objetivo con el reemplazo, devolviendo una nueva instancia de String. Este método es ideal cuando necesitas una sustitución simple, sin regex.
Sintaxis
public String replace(CharSequence target, CharSequence replacement)
Parámetros
target– La secuencia de caracteres que quieres reemplazar.replacement– La secuencia que reemplazará atarget.
Ejemplo
public class ReplaceExample { public static void main(String[] args) { String original = "the quick fox jumped"; System.out.println("Original: " + original); System.out.println("After replace(\"fox\", \"dog\"): " + original.replace("fox", "dog")); System.out.println("After replace('t', 'a'): " + original.replace('t', 'a')); } }
Salida
Original: the quick fox jumped After replace("fox", "dog"): the quick dog jumped After replace('t', 'a'): ahe quick fox jumped
Java String replaceAll()
El método replaceAll() usa una expresión regular (regex) para identificar coincidencias en toda la cadena. Luego sustituye cada coincidencia con el reemplazo especificado, devolviendo una nueva cadena. Este método es perfecto cuando necesitas reemplazos basados en patrones.
Firma
public String replaceAll(String regex, String replacement)
Parámetros
regex– El patrón regex para localizar subcadenas.replacement– La cadena que reemplazará cada coincidencia.
Ejemplo
public class ReplaceAllExample { public static void main(String[] args) { String text = "Guru99 is a site providing free tutorials"; String withoutSpaces = text.replaceAll("\\s", ""); System.out.println(withoutSpaces); } }
Salida
Guru99isasiteprovidingfreetutorials
Java String replaceFirst()
El método replaceFirst() se comporta como replaceAll() pero solo afecta a la primera coincidencia encontrada. Escanea desde el inicio de la cadena y se detiene tras el primer reemplazo, siendo útil cuando solo una ocurrencia debe alterarse.
Firma
public String replaceFirst(String regex, String replacement)
Parámetros
regex– El patrón regex que identifica la subcadena objetivo.replacement– La cadena que reemplazará la primera coincidencia.
Ejemplo
public class ReplaceFirstExample { public static void main(String[] args) { String sentence = "This website providing free tutorials"; String updated = sentence.replaceFirst("s", "9"); System.out.println(updated); } }
Salida
Thi9 website providing free tutorials
Elegir el método adecuado
- Usa
replace()para sustituciones simples, sin regex. - Elige
replaceAll()cuando necesites reemplazar cada coincidencia de un patrón regex. - Opta por
replaceFirst()si solo la primera ocurrencia debe cambiarse.
Estos métodos son inmutables; nunca alteran la cadena original sino que devuelven una nueva instancia, asegurando thread safety y comportamiento predecible en entornos concurrentes.
Java
- Variables y Literales en Java: Guía Completa
- Dominar Strings en Java: Creación, Métodos y Mejores Prácticas
- Dominando representaciones String en Enums de Java
- Tipos de anotaciones en Java: Guía completa de predefinidas, personalizadas y meta‑anotaciones
- Método Java String length(): Cómo obtener el tamaño de un String (Ejemplo)
- Dominando Java String.indexOf(): Localizar subcadenas y ejemplos prácticos
- Entendiendo Java String.charAt(): Sintaxis, tipo de retorno, excepciones y ejemplo práctico
- Dominando el método compareTo() de Java String: Sintaxis, casos de uso y ejemplos prácticos
- Método Java String.contains(): Cómo comprobar subcadenas – Ejemplos prácticos
- Dominando Java String.endsWith(): Cómo comprobar sufijos de cadena con ejemplos
- Java String toLowerCase() y toUpperCase(): Convertir mayúsculas/minúsculas con conciencia de locale