System.out.println("Digite o código de entrada no modelo xCy:");entrada=scan.nextLine();//recebeentradatipo"ABBABACABABBA"entrada.replace("C","E");System.out.println(entrada);
A saída aqui está sendo a mesma da entrada, por que ? Não dá erro nenhum, roda blz, mais o replace não troca a letra c por e. To usando o replace de forma errada ??
Obrigado !
A classe String é imutável. Isso significa que nenhum de seus métodos altera o seu conteúdo. Todos os métodos que parecem fazer isso (como replace, replaceAll ou substring) na verdade retornam uma nova String com o conteúdo modificado, sem mexer na String onde foram chamados.
Por isso a necessidade de fazer como o colega descreveu:
entrada=entrada.replace("C","E");
Nessa linha, o replace gera uma string modificada, e a atribui na variável entrada, que tinha a String original.
Para saber mais sobre classes imutáveis, leia:
aloha
replaceall?
ViniGodoy
Sim, similar ao replace, mas usa expressões regulares. Veja o javadoc, para mais informações.