基本上我正在尝试做的是一个非常简单的登录屏幕来了解摇摆。
我的问题是我目前有一个文件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))
现在我猜我的问题是我有一个字符串数组,它正在将它与单个字符串进行比较现在我要做的就是通过数组,如果它们中的任何一个匹配,我希望它采取该匹配使用它,如果这是有道理的,有什么办法可以解决这个问题吗?
答案 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)。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]
)