Não aparece na condição if

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!

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+

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…

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

:oops:

Obrigado!

[quote=Zakim]eu acreditava que o equals só comparava objetos… :stuck_out_tongue:

:oops:

[/quote]

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

T+