如果没有检测到陈述

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"时.难道我做错了什么?对不起,如果这最终成为一个完全明显的错误.

Kaz*_*ara 5

比较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.