concatenação - onde tá o erro?

5 respostas
knik

Eu tô fazendo uma calculadora java, a fim de aprender os tópicos básicos. Aí veio aquela questão do zero. Quando tem um zero no display, ao apertar a tecla zero não deveria acontecer nada, tipo ficar com dois zeros lá. Então fiz um código assim

if (display == 0) {

display = “”;

}

display = display + “0”;
label.setText(display);

Ou seja, tem um número armazenado na variável display. Então teclo o zero. O código verifica se o display é o zero, se for ele coloca uma string nula na variável. Mais tarde ele concatena a variável nula com o zero, já que teclei o zero.

Só que não dá certo, pois “parece” que o if não consegue “pegar” o valor da variável após a concatenação.

Já gastei quase duas horas tentando resolver isto e não consegui nada, nem utilizando stringbuffer ou concat.

Deve ser coisa boba, alguém aí tem uma idéia?

Obrigado

5 Respostas

Petronio_Braga

Knik,

coloca isso:

if (display.equals(0)) {

display = “”;

}
knik

Ok Petronio,

Obrigado. Funcionou mesmo do seu jeito. Mas fico com a dúvida. Por quê isto acontece? Teoricamente deveria funcionar do meu jeito…

N
String, vc usa .equals para comparar.
David

Você deve usar equals para comparar quaisquer objetos, e não apenas String. O == retorna true apenas se os dois objetos são o mesmo objeto na memória, e não quando o conteúdo deles são iguais.

knik

OK - obirgado pela ajuda. Não basta só digitar os códigos sem entender o que se está fazendo. Valeu mesmo.

Criado 23 de abril de 2006
Ultima resposta 23 de abr. de 2006
Respostas 5
Participantes 4