Olá Lucas! Tudo bem?
É comum passar um tempo para entender o que ocorre nesse caso! 😄
Acontece que no exemplo que nos deu aqui, você não está de fato atribuindo um novo valor a String.
O fato de utilizarmos o .replace()
não significa que estamos atribuindo um novo valor para a String
. O que acontece nesse caso, é que você está utilizando o System.out.println
para "imprimir" o retorno do método replace()
.
Imagine que o método replace()
está à nossa disposição para realizar a troca de caracteres em qualquer String. Podemos utilizá-lo várias vezes, realizando a troca de caracteres da forma que queremos. O que ele faz é copiar os caracteres da String em questão, e realizar a troca da forma que o instruímos... mas isso ocorre fora da String. Podemos entender que o que está sendo alterado é uma cópia do conteúdo da String.
Mas em seguida, quando imprime a String nome
, percebemos que o seu conteúdo não foi alterado.
Como te mostro no exemplo abaixo:
public class TesteString {
public static void main(String[] args) {
String nome = "Mario";
nome.replace('o', 'a');
System.out.println(nome);
}
}
Perceba que no exemplo nós utilizamos o nome.replace('o','a')
, mas não atribuímos o retorno do método replace
a nenhuma String
No caso, para que a String seja alterada, ao usar o replace()
nós devemos atribuir o novo valor:
nome = nome.replace('o', 'a');
Dessa forma a String nome
recebe o retorno do método replace
Consegui te ajudar com essa resposta?
Se ainda houver dúvidas sobre esse tema, é só falar! 😃
Bons estudos!
Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.Bons Estudos!