Solucionado (ver solução)

Importante

Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!

Solucionado
(ver solução)
3
respostas

Substituindo com replace não funciona

Bom dia galera!

Tenho duas variáveis que são preenchidas conforme informação que foram buscadas em um banco de dados. As duas variáveis estão pegando, praticamente, a mesma informação, porém uma pega 5 posições e outra pega 10, pensando como em um vetor. Exemplo para ficar mais claro:

    variavel 1 = "1234 A";
    variavel 2 = "1234 ABCDE";

Estava desenvolvendo um método, onde pego a variavel 1, faço um IF para ele verificar se as 5 posições constam caracteres de A-Z, e caso encontre tente substituir com um replace para já passar a utilizar a variavel 2, porém não esta funcionando. Não sei nem se isso é possível, mas acredito que sim.

public information replaceVar(information objeto) {
    if(objeto.getVariavel1().substring(5).matches("[A-Z]*"));

    objeto.getVariavel1().replace(variavel2);

    return objeto;
}
3 respostas

Olá Vitor, tranquilo?

Isso acontece porque String em Java é imutável. Ou seja, ao chamar o replace, você não altera a String, e sim cria uma cópia.

Outro ponto que reparei é que há um ; no final do seu if.

solução!

Exatamente com o Daniel respondeu, sendo mais semântico utilizar:

public information replaceVar(information objeto) {
    if(objeto.getVariavel1().substring(5).matches("[A-Z]*"));

    objeto.setVariavel1(variavel2);

    return objeto;
}

Vitor, como sua dúvida foi esclarecida, vou fechar o tópico ok?