HOWTO · Java

Substituir Carácter em String em Java

Este artigo introduz métodos de substituição de carácter numa string em Java

Neste tutorial, iremos introduzir dois métodos, replace() e replaceFirst() da classe String, substituindo um ou mais caracteres de uma determinada string em Java.

String.replace() para Substituir um único caractere numa string Java

Podemos utilizar o método replace() para substituir um único carácter numa string. replace(oldChar, newChar) exige dois argumentos: o primeiro argumento é o carácter que queremos substituir, e o segundo argumento é um novo carácter que é para substituir o carácter antigo.

No exemplo seguinte, temos uma string oldString1 que contém uma declaração com um &, mas queremos substituí-la por um coma. Isto pode ser feito simplesmente chamando o método replace() utilizando oldString1 e passando & e um coma.

Uma coisa importante a notar aqui é que há espaço em branco antes de & em replace(). É porque há espaço em branco à volta do nosso caractere alvo. Para eliminar o espaço em branco, substituiremos tanto o espaço em branco & como o espaço em branco por um coma.

public class ReplaceCharString {
  public static void main(String[] args) {
    String oldString1 = "My name is Sam & I am a software developer.";

    String newString1 = oldString1.replace(" &", ",");

    System.out.println(newString1);
  }
}

Resultado:

My name is Sam, I am a software developer.

String.replaceFirst() para substituir apenas a primeira ocorrência de um caractere numa string Java

Pode haver mais do que uma ocorrência do mesmo carácter que queremos substituir numa string. Se quisermos substituir apenas a primeira ocorrência do caractere e ignorar outras ocorrências depois disso. Isto pode ser feito utilizando outro método da classe String, que é replaceFirst(). Como o seu nome sugere, substitui apenas o primeiro carácter de uma string.

No exemplo, temos uma string com dois &, e só queremos substituir o primeiro por um coma como fizemos no exemplo anterior, mas ignoramos o segundo &. Assim, utilizamos oldString.replaceFirst(oldChar, newChar) para passar o espaço em branco com & e um coma. A saída mostra o resultado final.

public class ReplaceCharString {
  public static void main(String[] args) {
    String oldString1 =
        "I have used multiple Internet providers & but my current provider is AT&T.";

    String newString1 = oldString1.replaceFirst(" &", ",");

    System.out.println(newString1);
  }
}

Resultado:

I have used multiple Internet providerss, but my current provider is AT&T.

String.replace() para substituir dois caracteres de uma string em Java

No último exemplo deste tutorial, utilizaremos replace() para substituir dois caracteres diferentes. Em oldString1, queremos substituir o caracter maiúsculo (V) por um caracter minúsculo (v), e o último caracter da string, coma , por ..

Podemos fazer isto numa única linha, juntando dois métodos replace() e depois passando os caracteres próprios.

public class ReplaceCharString {
  public static void main(String[] args) {
    String oldString1 = "My name is Sam and I am a Software DeVeloper,";

    String newString1 = oldString1.replace("V", "v").replace(",", ".");

    System.out.println(newString1);
  }
}

Resultado:

My name is Sam and I am a Software Developer.