Problemas com if

3 respostas
Z
Gente, estou com um problema um tanto quanto idiota. Talvez a solução seja super simples e eu simplesmente não consigo ver.

A questão é que no meu código tenho:

private void Menu1(String opcao) {

if (opcao == 1) { faz qualquer coisa; }

}

ele é chamado a partir de Menu1(texto_digitado)

texto_digitado é uma variavel que criei.

A questão é que a condição ai em cima NUNCA  verdadeira.

ps:

texto_digitado = jTextField1.getText();

Nãoi tenho a menor idéia de pq não consigo fazer essa condição

Se alguém tiver uma luz, eu agradeço.

Abraços a todos,

Andre Luiz

3 Respostas

sergiolopes

o == nao eh o comparador de igualdade de strings do java… no java, para comparar o conteudo de strings, vc devbe usar o metodo compareTo (procure sobre ele na API)

vc deveria fazer entao:

if (opcao.compareTo("1") == 0) { faz qualquer coisa; }

o ==, no caso de objetos (e nao tipos promitivos), compara as referencias… entao, no q vc fez, ele testa se a referencia a tring opcao eh a mesma referencia da string “1”, e isso eh sempre falso (mesmo q opcao tem valor “1”, as duas coisas nao sao a mesma referencia na memoria)

cv1

compareTo() == 0 eh bobagem, se vc pode usar equals() :wink:

Sami_Koivu

Concordo com cv que equals() deixa seu código mais fácil pra entender se você só precisa saber se os Strings são iguais.

Sou um grande fã de código que é tão fácil ler como um texto inglês.

(minha assinatura excluído)

Mas de todo resto, sergiousp tem razão.

-Sami

Criado 23 de janeiro de 2005
Ultima resposta 23 de jan. de 2005
Respostas 3
Participantes 4