Substituir Múltiplos Caracteres em String em Java

Rupam Yadav 12 outubro 2023
  1. Substituir vários caracteres numa string utilizando replaceAll() em Java
  2. Substituir múltiplos caracteres numa string utilizando String.replace() em Java
Substituir Múltiplos Caracteres em String em Java

String.replaceAll() e String.replace() são dois métodos úteis para substituir caracteres de uma string em Java. Neste artigo, veremos como podemos utilizar estes dois métodos para substituir vários caracteres numa string.

O método replaceAll() pode fazer isto sozinho utilizando a expressão regular, mas se não quisermos utilizar expressões regulares, podemos utilizar o método replace().

Substituir vários caracteres numa string utilizando replaceAll() em Java

replaceAll() é utilizado quando queremos substituir todos os caracteres especificados ocorrências. Podemos utilizar expressões regulares para especificar o carácter que pretendemos substituir. Este método assenta em dois argumentos, o primeiro é o padrão de expressão regular, e o segundo é o carácter que pretendemos colocar.

No exemplo seguinte, iremos substituir vários caracteres utilizando algumas expressões regulares comuns.

public class ReplaceAllChars {
  public static void main(String[] args) {
    String stringUnderscoresForward = "j_u_s_t_a_s/t/r/i/n/g";
    String stringWithDigits = "abcd12345efgh";
    String stringWithWhiteSpaces = "s t r i n g";
    String stringWithLowerCase = "This is a Lower Case String";

    String finalString1 = stringUnderscoresForward.replaceAll("[_/]", "-");
    String finalString2 = stringWithDigits.replaceAll("[\\d]", "");
    String finalString3 = stringWithWhiteSpaces.replaceAll("[ ]", "");
    String finalString4 = stringWithWhiteSpaces.replaceAll("[\\s]", "-");
    String finalString5 = stringWithLowerCase.replaceAll("[\\p{Lower}]", "");

    System.out.println("Old String: " + stringUnderscoresForward + " New String: " + finalString1);
    System.out.println("Old String: " + stringWithDigits + " New String: " + finalString2);
    System.out.println("Old String: " + stringWithWhiteSpaces + " New String: " + finalString3);
    System.out.println("Old String: " + stringWithLowerCase + " New String: " + finalString4);
    System.out.println("Old String: " + stringWithLowerCase + " New String: " + finalString5);
  }
}

Resultado:

Old String: j_u_s_t_a_s/t/r/i/n/g --New String: j-u-s-t-a-s-t-r-i-n-g
Old String: abcd12345efgh --New String: abcdefgh
Old String: s t r i n g --New String: string
Old String: This is a Lower Case String --New String: s-t-r-i-n-g
Old String: This is a Lower Case String --New String: T   L C S

No exemplo acima, utilizamos múltiplas expressões regulares que são comummente utilizadas. Vamos ver o que significam e como funcionam.

O stringUnderscoresForward tem todos os caracteres separados por sublinhados e barras de reforço; vamos substituir todos eles por um traço (-). [char1 char2] é o regex utilizado para substituir dois caracteres por um único caracter. Podemos utilizar [_/] para substituir todos os sublinhados e barras por um traço.

stringWithDigits é uma string com alfabetos aleatórios e alguns dígitos entre eles. Queremos substituir cada dígito por um caracter vazio. Para tal, podemos utilizar a sequência de fuga \d que escapa aos dígitos. Será utilizado como um regex, e o carácter substituto será um carácter vazio.

O stringWithWhiteSpaces contém espaços em branco entre cada caractere. Para remover os espaços, podemos substituí-los por caracteres vazios. Os parênteses vazios com espaço branco [ ] indicam um espaço branco na string.

Também podemos utilizar [\\s] para colocar os espaços em branco numa string.

O stringWithLowerCase tem tanto os caracteres minúsculos como os maiúsculos. Queremos substituir cada letra minúscula por uma letra vazia. Utilizaremos [\p{Lower}] que é um regex para obter todos os caracteres minúsculos.

Substituir múltiplos caracteres numa string utilizando String.replace() em Java

public class ReplaceAllChars {
  public static void main(String[] args) {
    String stringWithRandomChars = "javbjavcjadakavajavc";

    String finalString =
        stringWithRandomChars.replace("b", "a").replace("c", "a").replace("d", "v").replace(
            "k", "j");

    System.out.println(finalString);
  }
}

Resultado:

javajavajavajavajava
Rupam Yadav avatar Rupam Yadav avatar

Rupam Saini is an android developer, who also works sometimes as a web developer., He likes to read books and write about various things.

LinkedIn

Artigo relacionado - Java String