Dominando Substituição de Strings em Java: replace(), replaceAll() e replaceFirst() Explicados
A classe Java String oferece três poderosos métodos de substituição que permitem modificar texto eficientemente: replace(), replaceAll() e replaceFirst(). Cada um serve a um propósito distinto e é otimizado para diferentes casos de uso.
Java String replace()
O método replace() realiza uma substituição direta de caractere ou string. Ele percorre toda a string e substitui toda ocorrência do alvo pela substituição, retornando uma nova instância String. Este método é ideal quando você precisa de uma substituição direta, sem regex.
Sintaxe
public String replace(CharSequence target, CharSequence replacement)
Parâmetros
target– A sequência de caracteres que você quer substituir.replacement– A sequência que substituirátarget.
Exemplo
public class ExemploReplace {
public static void main(String[] args) {
String original = "the quick fox jumped";
System.out.println("Original: " + original);
System.out.println("Após replace(\"fox\", \"dog\"): " + original.replace("fox", "dog"));
System.out.println("Após replace('t', 'a'): " + original.replace('t', 'a'));
}
}
Saída
Original: the quick fox jumped
Após replace("fox", "dog"): the quick dog jumped
Após replace('t', 'a'): ahe quick fox jumped
Java String replaceAll()
O método replaceAll() usa uma expressão regular (regex) para identificar correspondências em toda a string. Ele então substitui cada correspondência pela substituição especificada, retornando uma nova string. Este método é perfeito quando você precisa de substituições baseadas em padrão.
Assinatura
public String replaceAll(String regex, String replacement)
Parâmetros
regex– O padrão regex para localizar substrings.replacement– A string que substituirá cada correspondência.
Exemplo
public class ExemploReplaceAll {
public static void main(String[] args) {
String texto = "Guru99 is a site providing free tutorials";
String semEspacos = texto.replaceAll("\\s", "");
System.out.println(semEspacos);
}
}
Saída
Guru99isasiteprovidingfreetutorials
Java String replaceFirst()
O método replaceFirst() se comporta como replaceAll() mas afeta apenas a primeira correspondência encontrada. Ele varre do início da string e para após a primeira substituição, tornando-o útil quando apenas uma única ocorrência deve ser alterada.
Assinatura
public String replaceFirst(String regex, String replacement)
Parâmetros
regex– O padrão regex que identifica o substring alvo.replacement– A string que substituirá a primeira correspondência.
Exemplo
public class ExemploReplaceFirst {
public static void main(String[] args) {
String frase = "This website providing free tutorials";
String atualizada = frase.replaceFirst("s", "9");
System.out.println(atualizada);
}
}
Saída
Thi9 website providing free tutorials
Escolhendo o Método Certo
- Use
replace()para substituições simples, sem regex. - Escolha
replaceAll()quando precisar substituir toda correspondência de um padrão regex. - Opte por
replaceFirst()se apenas a primeira ocorrência deve ser alterada.
Estes métodos são imutáveis; eles nunca alteram a string original mas retornam uma nova instância, garantindo thread safety e comportamento previsível em ambientes concorrentes.
Java
- Dominando Strings em Java: Criação, Métodos e Boas Práticas
- Dominando Representações String em Enums Java
- Tipos de Anotação em Java: Guia Completo de Predefinidas, Customizadas e Meta-Anotações
- Método Java String length(): Como Obter o Tamanho de uma String (Exemplo)
- Dominando Java String.indexOf(): Localizando Substrings e Exemplos Práticos
- Entendendo Java String.charAt(): Sintaxe, Tipo de Retorno, Exceções e Exemplo Prático
- Dominando o Método compareTo() do Java String: Sintaxe, Casos de Uso e Exemplos Práticos
- Método Java String.contains(): Como Verificar Substrings – Exemplos Práticos
- Dominando Java String.endsWith(): Como Verificar Sufixos de String com Exemplos
- Java String toLowerCase() & toUpperCase(): Converter Caixa de Texto com Consciência de Locale