Java 如何搜索对象以查看其是否包含用户名和密码?
目前,我有一个文本文件,其中包含用户名和密码,并把它放在一个对象。但是,当尝试登录时,会显示数组索引超出范围。无法看到错误是什么Java 如何搜索对象以查看其是否包含用户名和密码?,java,Java,目前,我有一个文本文件,其中包含用户名和密码,并把它放在一个对象。但是,当尝试登录时,会显示数组索引超出范围。无法看到错误是什么 Object[][] data = new Object[UserDetails.size()][2]; for(int i=1; i<UserDetails.size(); i++) { data[i][0] = UserDetails.get(i)[0]; data[i][1] = UserDe
Object[][] data = new Object[UserDetails.size()][2];
for(int i=1; i<UserDetails.size(); i++) {
data[i][0] = UserDetails.get(i)[0];
data[i][1] = UserDetails.get(i)[1];
System.out.println(data[i][0]);
System.out.println(data[i][1]);
boolean match = false;
boolean limit = false;
int i=1;
do{
if((data[i][0] == username) && (data[i][1] == password)){
match = true;
UsernameField.setText(null);
PasswordField.setText(null);
close();
TablePage table;
table = new TablePage(username);
table.setVisible(true);
JOptionPane.showMessageDialog(null, "Sucessfully Logged In","Login Success",JOptionPane.INFORMATION_MESSAGE);
close();
}else{
if(i == UserDetails.size()){
limit=true;
}
i++;
}
} while(match==false || limit == true);
如果UserDetails.size=0,则数据大小为[0][2]。
稍后设置i=1,然后有一个ifdata[i][0]。
如果UserDetails.size=0,这将导致越界错误 问题有点不清楚,因为代码中没有正确发布用户详细信息。如果您可以发布所有代码,这可能会有所帮助。不要硬编码数组索引。为什么要使用如此糟糕的数据结构?当然,您真正需要的是一个Pair数组?我相信您忘记了关闭do/while循环中的第一个for循环和if语句。如果大括号是正确的,这意味着缩进是错误的。数组索引中的FYI从零开始。您的代码也有一些错误。其中是for循环的右大括号。将i初始化为零,在for循环和do while循环之前。这不是正确的答案,甚至不能解释真正的问题。这个问题也不清楚。