我是Java的新手,我想创建一个非常简单的登录Java程序。 不要考虑安全问题等,在这个例子中,我只是需要帮助才能做到正确。 我的“帐户信息”必须存储在数组中。
这是我的代码: - 主要 -
import java.util.Scanner;
public class BATM {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
String username;
String password;
System.out.println("Log in:");
System.out.println("Indtast username: ");
username = input.nextLine();
System.out.println("Indtast password: ");
password = input.nextLine();
users check = new users(username, password);
if(check.auth())
System.out.println("You are logged in");
}
}
- 用户---
public class users {
private String username;
private String password;
private String[][] accounts = {{"jesper", "abc123"},{"christian", "abc123"}};
public users(String user, String pass){
username = user;
password = pass;
}
public boolean auth(){
if((username == accounts[0][0]) && (password == accounts[0][1]))
return true;
else
return false;
}
}
我想这应该是一个非常简单的功能,但由于某种原因,if-statment永远不会返回“true”。
我做错了什么?
的Jesper。
答案 0 :(得分:1)
试试这个..
if((username.equals(accounts[0][0])) && (password.equals(accounts[0][1])))
答案 1 :(得分:0)
你正在进行字符串比较错误,在java中你需要使用.equals()
而不是==
后者比较两个对象引用,这不是你想要的。