Solucionado (ver solução)
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?

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software