4

我对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!");
        }
    }
}

快速总结一下,无论我输入什么密码,即使它是“管理员”,它也会对错。

4

1 回答 1

22

你不能像那样比较字符串。改用.equals()

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

你为什么问?

  • == 检查实际的对象引用是否相同。
  • equals(...)检查两个字符串是否包含相同的字符串(即相同顺序的相同字符)
于 2012-06-07T01:34:41.803 回答