Java 未检测到的If语句

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()

我正在使用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");
    }
}     

当我运行构建时,我将'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()
to
search1=search1.toLowerCase()
{   
    jTextField2.setText("Unknown Block");
}