Java Scanner字符串输入If语句不起作用

时间:2012-06-07 01:33:05

标签: java input if-statement

我对java很新,这看起来很简单,也许我错过了一些东西。

下面是我的一些代码,它应该做的是让用户输入一个密码,该密码存储在userinput中,不幸的是,如果我输入admin,我把它设置为==“admin”它不会工作,即使我做全部大写或全部小写,就像我拥有它。

我甚至试过预先设置一个变量,比如String password =“admin”;并将其设置为if(userinput == password),但似乎也不起作用。请帮忙!

    }
    public void protect(){
        Scanner input = new Scanner(System.in);
        System.out.println("Enter password: ");
        String userinput = input.nextLine();
        if (userinput == "admin"){
            System.out.println("Correct!");
        } else if (userinput != "admin"){
            System.out.println("Wrong!");
        }
    }
}

快速摘要,无论我输入什么密码,即使它是“管理员”也是对的。

1 个答案:

答案 0 :(得分:13)

你无法比较那样的字符串。请改用.equals()

if(userinput.equals("admin")) { // etc

为什么,你问?

  • ==检查实际对象引用是否相同。
  • equals(...)检查两个字符串是否包含相同的字符串(即相同顺序的相同字符)