Java 未检测到的If语句
我正在使用Netbeans 7.1.2 IDE。 我的代码在这里:Java 未检测到的If语句,java,netbeans,if-statement,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()
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");
}
}
当我运行构建时,我将'stone'输入到jTextField1,并点击jButton1,当If语句指定它应该将jTextField设置为“stone:1”时,它只会给我“Unknown Block”。我做错什么了吗?抱歉,如果这是一个非常明显的错误。使用
equals()比较String
阅读了解更多信息
=
比较引用,而不是值。在本例中,您希望检查值相等,而不是引用相等
编辑:
记住,您需要以这种方式进行所有字符串的比较
此外,
您有一个不需要的代码>此处:
else;
{
jTextField2.setText("Unknown Block");
}
删除该
在else
之后您需要使用.equals
检查字符串,如下所示:
if(search1.equals(“石头”)| | search1.equals(“岩石”)| | search1.equals(“1”)
所以首先不要使用=
比较字符串,而是使用equals()
,然后在最后一个else语句中添加一个
这意味着else的结束(因此总是执行jTextField2.setText(“未知块”)
)。你应该放下它
else; //<==Remove the ;
{
jTextField2.setText("Unknown Block");
}
else// 你应该照Kazekage Gaara说的去做。但在这种情况下,问题并不是这样。在下面的语句中,删除代码>在其他之后
else;
{
jTextField2.setText("Unknown Block");
}
这里发生的是
{
jTextField2.setText("Unknown Block");
}
无论如何都要执行,因为它在if-else块之后。分号有效地终止else语句。使用.equals
而不是=
来压缩字符串。
请参阅:您可能希望将其转换为switch语句(如果您使用的是Java1.7)代码>。在elast,当大家都在咬参考资料时,你遇到了问题Evan==!干杯另外,更改search1.toLowerCase()
tosearch1=search1.toLowerCase()代码>。
{
jTextField2.setText("Unknown Block");
}