String.equals não verifica ! [ R E S O L V I D O ]

13 respostas
T

Olá pessoal estou fazendo um teste para selecionar o JRadio correto retornado das informações do Banco, mas estou detectando que o equals não está conferindo com a String do Banco, mas está idêntico sim.
Segue o trecho:

String AL_Status = res.getString(17);
JOptionPane.showMessageDialog(null, AL_Status);
                        
       if (AL_Status.equalsIgnoreCase("Trabalhando")){
                  JOptionPane.showMessageDialog(null, AL_Status);
                  Leg_Radio_Trab.setSelected(true);
       }else    if (AL_Status.equalsIgnoreCase("Estudando")){
                            JOptionPane.showMessageDialog(null, AL_Status);
                            Leg_Radio_Estud.setSelected(true);
                   } else
                             Leg_Radio_Desat.setSelected(true);

O Primeiro OptionPane está me mostrando certinho o retorno do banco, mas os IF’s não entram…

oque será que não consigo enchergar ???

T+

13 Respostas

M

Tenta tirar o 17 do res.getString(17) pra ver se funciona.

ViniGodoy

Pq não tenta usar o debugger?

No lugar daquele 17, tente usar uma constante. Evite números mágicos no seu código.
Se res for um resultset, prefira sempre o nome da coluna, ao invés do número. Não só fica muito mais claro e evita erros, como também deixa o seu código menos sensível a mudanças no banco de dados.

P

será que sua string do banco não esta vindo com espaço em branco… tente usar

AL_Status.trim().equalsIgnoreCase("Trabalhando")
T

Dependendo de como está configurado o banco, ele pode lhe retornar uma string completada com espaços em branco à direita. Se estiver ocorrendo isso, pegue a string de retorno do banco, e aplique “trim()”:

String AL_Status = res.getString(17).trim();
von.juliano

Talvez esteja trazendo espaços em branco. Tente:

AL_Status.trim().equalsIgnoreCase("Trabalhando")

Flw! :thumbup:

T

Este 17 é da Select do Banco, está correto acredito, pois pode perceber que na próxima linha tenho um OptionPane, e este me mostra perfeitamente a String que foi coletada no Banco …

T

SÓ TEM FERA AQUI !!!

ERA OS ESPAÇOS MESMO, “TRIM” PRAMIM ERA PARA CORTAR AS UNHAS !! EHEHE

OBRIGADÃO, SEMPRE QUE POSTO NOS FÓRUNS JÁ FUCEI MUITO NOS OUTROS TÓPICOS.

ATÉ !!!

ViniGodoy

De qualquer forma, prefira o nome da coluna:

String al_status = rs.getString(“al_status”);

Vai ser muito mais claro do que o 17.

ViniGodoy

PS: Esse é o tipo de coisa que facilmente você veria com o depurador, que comentei ali em cima. Seja como for, aprenda a usar essa ferramenta. Ela está entre as mais importantes na vida de um programador.

T

PS: Esse é o tipo de coisa que facilmente você veria com o depurador, que comentei ali em cima. Seja como for, aprenda a usar essa ferramenta. Ela está entre as mais importantes na vida de um programador.

Vou procurar sim amigo, é que estou utilizando o JCreator para desenvolver… assim pratico melhor.

Mas obrigado de qualquer forma.

ViniGodoy

Não é desculpa. Ele também tem debugger.
Além disso, não esquece de trocar lá o 17 pelo nome do campo. :slight_smile:

Senão, basta vc adicionar uma coluna no início da tabela para ferrar todo seu código.

T

ViniGodoy:
De qualquer forma, prefira o nome da coluna:

String al_status = rs.getString(“al_status”);

Vai ser muito mais claro do que o 17.

Sem contar que leva exatamente o mesmo tempo para executar, conforme alguns testes de desempenho que efetuei algum tempo atrás. Portanto, prefira o nome em vez do número.

T

Com certeza vou seguir estas dicas !!!

Até mais e obrigado novamente.

Criado 27 de agosto de 2008
Ultima resposta 27 de ago. de 2008
Respostas 13
Participantes 6