如何搜索对象以查看它是否包含用户名和密码?

问题描述:

目前我已经有一个文本文件,其中包含用户名和密码,并把它放在一个对象。然而,当试图登录时,它说数组索引超出界限。看不到错误是什么。如何搜索对象以查看它是否包含用户名和密码?

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); 
+0

问题有点不清楚,有些变量'UserDetails'没有正确地发布在代码中。如果您可以发布所有代码,可能会有所帮助。 –

+0

不要硬编码你的数组索引。 – Omore

+0

为什么你使用这样一个可怕的数据结构?当然你真正需要的是一个'Pair '的数组吗? – EJP

如果UserDetails.size() = 0,则数据的大小是[0] [2]。 后来你设置i = 1,然后有一个if(data[i][0])。 如果是UserDetails.size() = 0,这会导致出界限错误;

+0

这不是正确的答案,甚至不解释真正的问题,这个问题也不清楚。 – Omore