我这里有一些代码应该要求用户输入一个将在我的第二堂课中检查的'密码'。我的问题是该程序不会传递到我的第二个类(PasswordChecker)中的方法,我该如何解决这个问题?我认为它与该行有关:
blnPassword2 = PasswordChecker.PasswordCheck(PasswordGuess);
import java.util.Scanner;
public class PasswordGuesser {
public static void main(String[] args){
boolean blnPassword2;
Scanner keyboard = new Scanner(System.in);
String PasswordGuess = keyboard.nextLine();
blnPassword2 = PasswordChecker.PasswordCheck(PasswordGuess);
if (blnPassword2==true) {
System.out.println("Password correct");
}
else
{
System.out.println("Password incorrect");
}
}
}
public class PasswordChecker {
public static boolean PasswordCheck(String PasswordGuess){
boolean blnPassword;
String StrPassword = "Enter";
if (PasswordGuess==StrPassword) {
blnPassword = true;
}
else {
blnPassword = false;
}
return (blnPassword);
}
}
谢谢,
杰森雷恩答案 0 :(得分:4)
您正在比较对象的参考位置而不是值。比较对象与比较基本数据类型(int,long,short,char)不同。
更改以下内容:
if(PasswordGuess==StrPassword)
要
if(PasswordGuess.equals(StrPassword))
请阅读有关在此进行平等操作的信息:
http://perso.ensta-paristech.fr/~diam/java/online/notes-java/data/expressions/22compareobjects.html