将String与字符串数组进行比较

时间:2011-11-09 01:30:12

标签: java arrays string

基本上我正在尝试做的是一个非常简单的登录屏幕来了解摇摆。

我的问题是我目前有一个文件pass.txt,其格式如下:

Username = bob,tony,mike
Password = pass,pass2,pass3

在我的Java文件中,我使用:

获取字符串
String[] user = prop.getProperty("Username").split(",");

现在我将其与来自JTextField的文本输入进行比较,但它始终无法实现我的目标:

if (input2.equals(pass) && userin.getText().equals(user))

现在我猜我的问题是我有一个字符串数组,它正在将它与单个字符串进行比较现在我要做的就是通过数组,如果它们中的任何一个匹配,我希望它采取该匹配使用它,如果这是有道理的,有什么办法可以解决这个问题吗?

4 个答案:

答案 0 :(得分:6)

我认为这可能会对你有所帮助,因为我认为你必须在这个数组中检查每个用户的密码:

for(int i=0;i < user.size();i++){
  if(input2.equals(pass[i]) && userin.getText().equals(user[i])){
   //your code
  }
}

答案 1 :(得分:4)

假设您有一个pass数组与user数组匹配,user中的每个条目都保证在pass中有相应的条目,那么以下解决方案应该工作:

int index = Arrays.asList(user).indexOf(userin.getText());
String password = pass[index];

if (password.equals(input2)) {
    // Successful authentication
} else {
    // Authentication failed
}
  • Arrays.asList(user).indexOf(userin.getText())将获得索引 列表中的用户(在您的示例中,“bob”=&gt; 0;“tony”=&gt; 1;“mike”=&gt; 2)。
  • password是同一索引处的密码字符串(在您的示例中, “pass”=&gt; 0; “pass2”=&gt; 1; “pass3”=&gt; 2)。
  • 然后if比较与用户关联的密码 (password)使用对话框中输入的密码 (input2)。

答案 2 :(得分:0)

您必须搜索用户名表,找到引入用户名的位置,然后检查该位置的密码是否与用户介绍的密码相同。

答案 3 :(得分:0)

你必须以某种方式在数组中搜索你正在寻找的字符串。有很多方法可以做到这一点,我将概述一种方法。

int index = 0;
for (String s : user) {
    if (s.equals(userin.getText()) {
        // the username matches! now check to see if the password at the _same index_ matches
        if (pass[index].eqals(input2.getText()) {
            // correct username and password!
        } else {
            // bad password!
        }
    }
    ++index;
}

我假设您有一个名为pass的密码数组,并且索引与user数组的索引匹配。 (user[i]的密码为pass[i]