Substituir um caractere em um índice específico em uma string em Java

Substituir um caractere em um índice específico em uma string em Java

1. Introdução

Neste tutorial rápido, demonstraremoshow to replace a character at a specific index in a String in Java.

Apresentaremos quatro implementações de métodos simples que tomam oString, original um caractere e o índice onde precisamos substituí-lo.

2. Usando uma matriz de caracteres

Vamos começar com uma abordagem simples, usando uma matriz dechar.

Aqui, a ideia é converterString emchar[]e atribuir o novochar no índice fornecido. Finalmente, construímos osString desejados a partir desse array.

public String replaceCharUsingCharArray(String str, char ch, int index) {
    char[] chars = str.toCharArray();
    chars[index] = ch;
    return String.valueOf(chars);
}

Essa é uma abordagem de design de baixo nível e nos oferece muita flexibilidade.

3. Usando o métodosubstring

Uma abordagem de nível superior é usar o métodosubstring() da classeString.

Ele criará um novoString concatenando a substring doString original antes do índice com o novo caractere e a substring doString original após o índice:

public String replaceChar(String str, char ch, int index) {
    return str.substring(0, index) + ch + str.substring(index+1);
}

4. UsandoStringBuilder

Podemos obter o mesmo efeito usandoStringBuilder. Podemos substituir o caractere em um índice específico usando o métodosetCharAt():

public String replaceChar(String str, char ch, int index) {
    StringBuilder myString = new StringBuilder(str);
    myString.setCharAt(index, ch);
    return myString.toString();
}

5. Conclusão

Neste artigo, nos concentramos em várias maneiras de substituir um caractere em um índice específico em umString usando Java.

As instâncias deString são imutáveis, então precisamos criar uma nova string ou usarStringBuilder para nos dar alguma mutabilidade.

Como de costume, o código-fonte completo do tutorial acima está disponívelover on GitHub.