Excluindo caracteres que correspondem a um padrão

Java:
Excluindo caracteres que correspondem a um padrão

How to:

Em Java, podemos usar a classe Pattern e a classe Matcher para localizar e deletar os trechinhos específicos dentro de uma string. Vamos ver como isso funciona.

import java.util.regex.Pattern;
import java.util.regex.Matcher;

public class DeletePatternExample {
    public static void main(String[] args) {
        String originalString = "abacaxi99 é uma fruta100 deliciosa";
        String patternString = "\\d+"; // padrão regex para encontrar números

        Pattern pattern = Pattern.compile(patternString);
        Matcher matcher = pattern.matcher(originalString);

        String cleanedString = matcher.replaceAll("");
        System.out.println(cleanedString);
    }
}

Saída do exemplo:

abacaxi é uma fruta deliciosa

Repare que todos os números foram removidos da string original.

Deep Dive

Deletar caracteres seguindo um padrão não é uma tecnologia nova; isso já está em diversas linguagens de programação há décadas, através de expressões regulares, ou regex. Regex é poderoso, mas pode ser complicadinho no começo. Existem alternativas, como usar o método replace() ou replaceAll() de String para substituir sem regex, mas são menos flexíveis. Quanto à implementação, o Java compila o padrão regex numa série de instruções que procuram correspondências na string — se liga que isso pode ser menos eficiente se usado indevidamente, especialmente em loops.

See Also