我对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!");
}
}
}
快速摘要,无论我输入什么密码,即使它是“管理员”也是对的。
答案 0 :(得分:13)
你无法比较那样的字符串。请改用.equals()
:
if(userinput.equals("admin")) { // etc
为什么,你问?
equals(...)
检查两个字符串是否包含相同的字符串(即相同顺序的相同字符)