如果没有检测到陈述

时间:2012-06-18 14:00:09

标签: 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");
    }
}     

当我运行构建时,我将'stone'输入jTextField1,然后点击jButton1,它只是给我“Unknown Block”,当一个If语句指定它应该将jTextField设置为“Stone:1”时。难道我做错了什么?对不起,如果这最终成为一个完全明显的错误。

5 个答案:

答案 0 :(得分:5)

使用String

比较equals()
if (search1.equals("stone") || search1.equals("rock") || search1.equals("1"))

阅读this了解详情。

==比较参考,而不是值。在您的情况下,您要检查值相等,而不是引用相等。


编辑:

请记住,您需要以这种方式进行所有String比较。

此外,

这里有一个不受欢迎的;

  else;
    {   
        jTextField2.setText("Unknown Block");
    }

;之后移除else

答案 1 :(得分:1)

您需要使用.equals来检查字符串,如下所示:

if (search1.equals("stone") || search1.equals("rock") || search1.equals("1"))

答案 2 :(得分:1)

所以首先不要使用==来比较字符串,而是使用equals()代替然后在最后一个else语句中添加;,这意味着其他结束(所以始终执行jTextField2.setText("Unknown Block"))。你应该放弃它。

else; //<==Remove the ;
{   
    jTextField2.setText("Unknown Block");
}

答案 3 :(得分:0)

你应该做Kazekage Gaara所说的。但在这种情况下,问题并非如此。在以下语句中删除;之后的其他内容。

else;
{   
    jTextField2.setText("Unknown Block");
}

这里发生的是

{   
    jTextField2.setText("Unknown Block");
}

无论如何都会执行,因为它位于if else块之后。分号有效地终止了else语句。

答案 4 :(得分:0)

使用.equals代替==来比较字符串。 请参阅:http://blog.enrii.com/2006/03/15/java-string-equality-common-mistake/