Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/340.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何搜索对象以查看其是否包含用户名和密码?_Java - Fatal编程技术网

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循环之前。这不是正确的答案,甚至不能解释真正的问题。这个问题也不清楚。