Roc*_*one -1 java netbeans if-statement
我正在使用Netbeans 7.1.2 IDE.我的代码在这里:
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
String search1;
search1 = jTextField1.getText();
search1.toLowerCase();
jTextField2.setText("tes1");
// stone
if (search1=="stone" || search1=="rock" || search1=="1")
{
jTextField2.setText("Stone: 1");
}
// grass
else if (search1=="Grass" || search1=="grass")
{
jTextField2.setText("Grass: 2");
}
// dirt
else if (search1=="Dirt" || search1=="dirt" || search1=="Soil" || search1=="soil")
{
jTextField2.setText("Dirt: 3");
}
// cobblestone
else if (search1=="cobblestone" || search1=="cobble")
{
jTextField2.setText("Cobblestone: 4");
}
else;
{
jTextField2.setText("Unknown Block");
}
}
Run Code Online (Sandbox Code Playgroud)
当我运行构建,并将'stone'输入jTextField1,然后点击jButton1时,它只给我"Unknown Block",当一个If语句指定它应该将jTextField设置为"Stone:1"时.难道我做错了什么?对不起,如果这最终成为一个完全明显的错误.
比较String
使用equals()
if (search1.equals("stone") || search1.equals("rock") || search1.equals("1"))
Run Code Online (Sandbox Code Playgroud)
阅读本文以获取更多信息.
==
比较参考,而不是值.在您的情况下,您要检查值相等,而不是引用相等.
编辑:
请记住,您需要以String
这种方式进行所有比较.
除了,
你有一个不需要的;
地方:
else;
{
jTextField2.setText("Unknown Block");
}
Run Code Online (Sandbox Code Playgroud)
删除;
之后else
.