Não aparece na condição if

5 respostas
V
Estou aprendendo a linguagem Java, e fazendo um exercício, fiz essa sintaxe:

BufferedReader ler;

ler = new BufferedReader (new InputStreamReader(System.in));

String saida=String.valueOf(ler.readLine());

System.out.println(saida);

A variável “saida” aparece normal na tela com o valor que eu escrevo, no caso “ler”, mas na condição if (saida==“1”) ou if (saida==“2”) ele não reconhece, mesmo escrevendo 1 ou 2 na tela.

Obrigado!

5 Respostas

diego2005

Para se comparar Strings use o método equals:

String s1 = "2"; String s2 = "2"; if(s1.equals(s2)) { System.out.println("Iguais"); }

O operador de igualdade (==) compara apenas referências…

T+

Zakim

que tela é essa que vc esta usando? um textfield dentro de um frame ou um JOoptionPane?

vc pode estar lendo um valor errado…
tente mudar os valores direto no parametro do seu metodo para ver o que acontece…

Zakim

eu acreditava que o equals só comparava objetos… :stuck_out_tongue:

:oops:

V

Obrigado!

diego2005

Zakim:
eu acreditava que o equals só comparava objetos… :stuck_out_tongue:

:oops:

Isso mesmo, equals só compara objetos, e String é um objeto(apesar de poder ser criado com um literal), não um tipo primitivo…

T+

Criado 23 de julho de 2007
Ultima resposta 23 de jul. de 2007
Respostas 5
Participantes 3