Substituição de Substrings em Java

JavaBeginner
Pratique Agora

Introdução

Neste laboratório, aprenderemos como substituir substrings em uma String usando a linguagem de programação Java. Usaremos diferentes métodos disponíveis em Java para substituir caracteres únicos/múltiplos ou substrings. No final, teremos uma compreensão clara de como implementar esses métodos no código Java.

Criar um arquivo Java

Vamos criar um arquivo Java para escrever e executar o código. Abra o terminal e navegue até o diretório do projeto. Crie um novo arquivo chamado SubstringReplace.java usando o seguinte comando:

touch SubstringReplace.java

Abra o arquivo no seu editor de texto preferido.

Substituindo caracteres únicos

Podemos usar o método replace() para substituir uma única ocorrência de um caractere na string. Aqui está um exemplo:

public class SubstringReplace {
    public static void main(String[] args) {
        String originalString = "hello world!";
        System.out.println("Original String: " + originalString);
        // Replacing a single character
        String newString = originalString.replace('l', 'L');
        System.out.println("New String: " + newString);
    }
}

No exemplo acima, estamos substituindo o caractere l minúsculo pelo caractere L maiúsculo na string original.

Para compilar e executar o código, use os seguintes comandos:

javac SubstringReplace.java
java SubstringReplace

Isso deve produzir a seguinte saída:

Original String: hello world!
New String: heLLo worLd!

Substituindo substrings

Podemos usar o método replace() para substituir todas as ocorrências de uma substring por uma nova substring. Aqui está um exemplo:

public class SubstringReplace {
    public static void main(String[] args) {
        String originalString = "the quick brown fox jumps over the lazy dog";
        System.out.println("Original String: " + originalString);
        // Replacing a substring
        String newString = originalString.replace("the", "a");
        System.out.println("New String: " + newString);
    }
}

No exemplo acima, estamos substituindo todas as ocorrências da substring "the" pela substring "a".

Para compilar e executar o código, use os mesmos comandos do passo 2.

Isso deve produzir a seguinte saída:

Original String: the quick brown fox jumps over the lazy dog
New String: a quick brown fox jumps over a lazy dog

Substituindo a primeira ocorrência de uma substring

Podemos usar o método replaceFirst() para substituir a primeira ocorrência de uma substring por uma nova substring. Aqui está um exemplo:

public class SubstringReplace {
    public static void main(String[] args) {
        String originalString = "the quick brown fox jumps over the lazy dog";
        System.out.println("Original String: " + originalString);
        // Replacing the first occurrence of a substring
        String newString = originalString.replaceFirst("the", "a");
        System.out.println("New String: " + newString);
    }
}

No exemplo acima, estamos substituindo a primeira ocorrência da substring "the" pela substring "a".

Para compilar e executar o código, use os mesmos comandos do passo 2.

Isso deve produzir a seguinte saída:

Original String: the quick brown fox jumps over the lazy dog
New String: a quick brown fox jumps over the lazy dog

Substituição de caracteres com expressões regulares

Podemos usar expressões regulares (regular expressions) para substituir um caractere por um padrão. Aqui está um exemplo:

public class SubstringReplace {
    public static void main(String[] args) {
        String originalString = "the quick brown fox jumps over the lazy dog";
        System.out.println("Original String: " + originalString);
        // Replacing characters with regular expressions
        String newString = originalString.replaceAll("[aeiou]", "");
        System.out.println("New String: " + newString);
    }
}

No exemplo acima, estamos removendo todas as vogais da string original usando uma expressão regular.

Para compilar e executar o código, use os mesmos comandos do passo 2.

Isso deve produzir a seguinte saída:

Original String: the quick brown fox jumps over the lazy dog
New String: th qck brwn fx jmps vr th lzy dg

Substituição de múltiplos caracteres com expressões regulares

Podemos usar expressões regulares (regular expressions) para substituir múltiplos caracteres por um padrão. Aqui está um exemplo:

public class SubstringReplace {
    public static void main(String[] args) {
        String originalString = "the quick brown fox jumps over the lazy dog";
        System.out.println("Original String: " + originalString);
        // Replacing multiple characters with regular expressions
        String newString = originalString.replaceAll("[aeiouAEIOU]", "");
        System.out.println("New String: " + newString);
    }
}

No exemplo acima, estamos removendo todas as vogais (minúsculas e maiúsculas) da string original usando uma expressão regular.

Para compilar e executar o código, use os mesmos comandos do passo 2.

Isso deve produzir a seguinte saída:

Original String: the quick brown fox jumps over the lazy dog
New String: th qck brwn fx jmps vr th lzy dg

Substituição de substrings com expressões regulares

Podemos usar expressões regulares (regular expressions) para substituir uma substring por um padrão. Aqui está um exemplo:

public class SubstringReplace {
    public static void main(String[] args) {
        String originalString = "the quick brown fox jumps over the lazy dog";
        System.out.println("Original String: " + originalString);
        // Replacing substrings with regular expressions
        String newString = originalString.replaceAll("\\w+", "a");
        System.out.println("New String: " + newString);
    }
}

No exemplo acima, estamos substituindo todas as palavras na string original pela letra a usando uma expressão regular.

Para compilar e executar o código, use os mesmos comandos do passo 2.

Isso deve produzir a seguinte saída:

Original String: the quick brown fox jumps over the lazy dog
New String: a a a a a a a a a

Substituição de múltiplas ocorrências de uma substring com expressões regulares

Podemos usar expressões regulares (regular expressions) para substituir todas as ocorrências de uma substring por um padrão. Aqui está um exemplo:

public class SubstringReplace {
    public static void main(String[] args) {
        String originalString = "the quick brown fox jumps over the lazy dog";
        System.out.println("Original String: " + originalString);
        // Replacing all occurrences of a substring with regular expressions
        String newString = originalString.replaceAll("the", "a");
        System.out.println("New String: " + newString);
    }
}

No exemplo acima, estamos substituindo todas as ocorrências da substring "the" pela letra a usando uma expressão regular.

Para compilar e executar o código, use os mesmos comandos do passo 2.

Isso deve produzir a seguinte saída:

Original String: the quick brown fox jumps over the lazy dog
New String: a quick brown fox jumps over a lazy dog

Usando StringBuilder para substituir substrings

Podemos usar a classe StringBuilder para substituir substrings de uma forma mais eficiente. Aqui está um exemplo:

public class SubstringReplace {
    public static void main(String[] args) {
        String originalString = "the quick brown fox jumps over the lazy dog";
        System.out.println("Original String: " + originalString);
        // Using StringBuilder to replace substrings
        StringBuilder stringBuilder = new StringBuilder(originalString);
        stringBuilder.replace(0, 3, "a");
        String newString = stringBuilder.toString();
        System.out.println("New String: " + newString);
    }
}

No exemplo acima, estamos usando a classe StringBuilder para substituir os primeiros 3 caracteres da string pela letra a.

Para compilar e executar o código, use os mesmos comandos do passo 2.

Isso deve produzir a seguinte saída:

Original String: the quick brown fox jumps over the lazy dog
New String: a quick brown fox jumps over the lazy dog

Usando StringBuffer para substituir substrings

Semelhante ao StringBuilder, podemos usar a classe StringBuffer para substituir substrings de uma forma mais eficiente. A única diferença é que StringBuffer é thread-safe (seguro para threads). Aqui está um exemplo:

public class SubstringReplace {
    public static void main(String[] args) {
        String originalString = "the quick brown fox jumps over the lazy dog";
        System.out.println("Original String: " + originalString);
        // Using StringBuffer to replace substrings
        StringBuffer stringBuffer = new StringBuffer(originalString);
        stringBuffer.replace(0, 3, "a");
        String newString = stringBuffer.toString();
        System.out.println("New String: " + newString);
    }
}

No exemplo acima, estamos usando a classe StringBuffer para substituir os primeiros 3 caracteres da string pela letra a.

Para compilar e executar o código, use os mesmos comandos do passo 2.

Isso deve produzir a seguinte saída:

Original String: the quick brown fox jumps over the lazy dog
New String: a quick brown fox jumps over the lazy dog

Resumo

Neste laboratório, aprendemos como substituir substrings em uma String usando a linguagem de programação Java. Discutimos vários métodos disponíveis em Java para substituir caracteres únicos/múltiplos ou substrings. Também aprendemos como usar expressões regulares e as classes StringBuilder/StringBuffer para substituições de substrings mais eficientes. Ao usar este conhecimento, você pode facilmente manipular strings em seus programas Java.