String nome = "Mario"; nome.replace('o', 'a'); System.out.println(nome);
Uma String nunca é alterada e o System.out.println está mostrando a String original, então é para mostrar Mario e na resposta tem como se a String tivesse sido modificada...
String nome = "Mario"; nome.replace('o', 'a'); System.out.println(nome);
Uma String nunca é alterada e o System.out.println está mostrando a String original, então é para mostrar Mario e na resposta tem como se a String tivesse sido modificada...
Você deixou "solta" essa modificação, uma opção seria:
String nome = "Mario"; nome = nome.replace('o', 'a'); System.out.println(nome);
Nesse caso, eu testei no Eclipse e modificou sim a letra do nome de Mario para Maria.
Olá, Jerusa! Tudo bem?
Como o Juliano e o Gilvani explicaram bem acima, a resposta está correta.
O fato de utilizarmos o .replace()
não significa que estamos atribuindo um novo valor para a String
:
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étodoreplace
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étodoreplace
Consegui te ajudar com essa resposta?
Bons estudos!