Problemas com IF

15 respostas
D

Fala galera :smiley:

To com o seguinte problema:

Tenho uma coluna no bd que é do tipo CHAR, minha variável String no java, e eu defini na coluna, o valor “555” e criei o seguinte if:

String quantidadeDias = davidVO.getQtdeDias();
							
							if (quantidadeDias == "555") {
								davidVO.setCondPagamento("Wee");
							}

Ele pega o valor que está no BD e armazena na String quantidadeDias, mas ele não entra na ação do IF…ele chega a fazer a verificação, mas ele entende que o quantadeDias, não esta valendo 555. Alguém pode me dar uma força?? :smiley:

[]'s

15 Respostas

T

== não funciona com strings. Use o método “equals”

A

Isso é um erro muito comum que os desenvolvedores cometem. == para objetos compara o ponteiro, para ver se é o mesmo objeto, de fato. Para você fazer o que quer, tem que usar o método equals, da classe String.

Abraço,

Armando

D

Como é a tag String.equals??

(quantidadeDias.equals(“555”))?

A

é isso mesmo.

A propósito… por que esse campo não é inteiro??

Abraço,

Armando

D

Amigo, ele ainda não entra no “if” rsrsrs

Eu não coloquei inteiro, pq não iria saber como comparar no IF e estava dando pau, não queria inserir como “integer” rsrs :oops:

Ele está dessa maneira agora:

String quantidadeDias = projetoVO.getQtdeDias();
							
							if (quantidadeDias.equals("555")) {
								projetoVO.setCondPagamento("Wee");
							}
D

Amigos, consegui resolver o problema!

Mudei o if para:

if (quantidadeDias.equalsIgnoreCase("555")) {

Alguem pode me dizer a diferença a do equalsIgnoreCase e o do simplesmente equals??

Aproveitando o tópico, como que eu faço para comparar…tipo “SE talcoisa MENOR IGUAL” … :roll:

[]'s

A

Cara, tem alguma coisa errada aí... se for 555, tem que entrar com certeza.

O que deu problema com o int? Com o int você pode utilizar o == normalmente.

Exemplo:

int quantidadeDias = projetoVO.getQtdeDias(); // Considerando que o campo qtdeDias seja um int
 							
 							if (quantidadeDias == 555) {
 								projetoVO.setCondPagamento("Wee");
 							}

Abraço,

Armando

lgr

O ignoreCase compara a String desconsiderando se é Caixa alta ou baixa…
se vc usar equals ele considera isto…

lgr

O ignoreCase compara a String desconsiderando se é Caixa alta ou baixa…
se vc usar equals ele considera isto…

D

Acho que o problema está no SQL…eu tenho um problema com ele rsrs

Com o equalsIgnoreCase, como que eu faço para comparar tipo

if (quantidadeDias.equalsIgnoreCase( menor igual que 555)) {” ??

peczenyj

Faça um Integer.parseInt(O.seu.metodo.que.retorna.a.string()) e ao lide com operadores relacionais > , < , == , <= e >= entre inteiros :wink:

D

Muito orbigado amigos :smiley:

Consegui resolver o problema!

Eduardo_Bregaida

Tenta assim:

String quantidadeDias = davidVO.getQtdeDias();
 							
 		if (quantidadeDias.equals("555")) { 
                     davidVO.setCondPagamento("Wee");
 		}
peron

Bom, é so uma dica extra, porque como o Heero Yuy respondeu também está correto, mas mudando a ordem da comparação, evita-se NullPointerException:

String quantidadeDias = davidVO.getQtdeDias();
  							
  		if ("555".equals(quantidadeDias)) { 
                      davidVO.setCondPagamento("Wee");
  		}

sendo assim, quantidadeDias pode ser nulo que nao irá dar nenhuma exceção …

aprendi com os experts daqui isso ai

abraços

Luiz_Gustavo

peron:
Bom, é so uma dica extra, porque como o Heero Yuy respondeu também está correto, mas mudando a ordem da comparação, evita-se NullPointerException:

String quantidadeDias = davidVO.getQtdeDias();
  							
  		if ("555".equals(quantidadeDias)) { 
                      davidVO.setCondPagamento("Wee");
  		}

sendo assim, quantidadeDias pode ser nulo que nao irá dar nenhuma exceção …

aprendi com os experts daqui isso ai

abraços

legal, boa dica!!!

Criado 13 de setembro de 2006
Ultima resposta 14 de set. de 2006
Respostas 15
Participantes 8