Pessoal, preciso de ajuda com relação ao seguinte problema:
Um exemplo simples para vocês entenderem o que acontece.
String StrCompl=“S”;
if(StringCompl!=“S”){
método a ser executado.
}
Dessa forma tudo bem. O problema é que preciso que a variável StrCompl receba o valor da base de dados. Aí noto que mesmo que o valor pesquisado seja=S, o netbeans vê StrCompl como sendo diferente de S e executa o método. Tentei também usando o método equals. Uso netbeans e firebird. Pessoal, por mais que tenho passado tempo aprendendo java, o que também ainda não faz tanto tempo, o que consigo ver é que ainda não sei nada. Agradeço a ajuda de vocês.
Fala ai @Nasciment2018, uma duvida que ficou confuso para mim. Qual é a condição real?
1 - Voce deseja que execute o metodo quando StringCompl for igual a “S”
ou
2 - Voce deseja que execute o metodo quando StringCompl for diferente de “S”
Pois se for alternativa 2 ele esta fazendo exatamente isso pois sua condição esta como
if(StringCompl != “S”){
!= //Diferente
Abraços
Max
É a 2. Aí entra o meu problema. Se o código está certo, porque que o método é executado mesmo quando o valor pesquisado no bd é S? O problema não existe se coloco manualmente StrCompl=“S”. Se eu não resolver isso, não vou conseguir fazer nada com parâmetros pesquisados no bd e que envolva uma comparação. Fui em propriedades do projeto, mudei a codificação de UTF8 para ISO 8859, tentei com uma nova base de dados do FireBird com Default character set como ISO 8859. Fiz experiências, mas nada resolveu até agora.
O netbeans dá o seguinte retorno:ADVERTÊNCIA: WARNING: No connection character set specified (property lc_ctype, encoding, charSet or localEncoding), defaulting to character set NONE
O NetBeans dá o seguinte retorno: ADVERTÊNCIA: WARNING: No connection character set specified (property lc_ctype, encoding, charSet or localEncoding), defaulting to character set NONE. Não sei se está relacionado e nem qual a solução.
Não se compara String com == e !=, para String se usa o método equals.
Exemplo:
if(!StringCompl.equals("S")){
//método a ser executado.
}
Obrigado ao Jonathan e ao Max pela atenção. Eu tinha tentado com equals mas sem sucesso. Com o post do Jonathan fui bater de novo no assunto do equals e acabei descobrindo detalhes que agente não percebe enquanto problemas não aparecem. Seu post me colocou no caminho certo para o que eu precisava. Aprendi mais sobre o equals que parece tão simples mas tem detalhes para nos enrolar quando falta experiência no assunto. Resolvi também tentar com uma variável do tipo integer. Deu certo. Obrigado.