我正在进行密码登录,要求我匹配两个阵列:User和Pass。如果用户键入“mark”和“pass”,则应显示成功。但是我遇到了String [] input = pass.getPassword();以及两个数组的匹配。
String[] User = {"mark", "susan", "bobo"};
String[] Pass = {"pass", "word", "password"};
String[] input = pass.getPassword();
if(Pass.length == input.length && user.getText().equals(User))
{
lblstat.setForeground(Color.GREEN);
lblstat.setText("Successful");
}
else
{
lblstat.setForeground(Color.RED);
lblstat.setText("Failed");
}
答案 0 :(得分:3)
我建议改用Map<K, V>
。这样就可以更容易地将键值对保持在一起。
Map<String, String> logins = new HashMap<String, String>();
logins.put("mark", "pass");
logins.put("susan", "word");
logins.put("bobo", "password");
String username = user.getText();
String password = pass.getPassword();
if (logins.containsKey(username) && logins.get(username).equals(password)) {
// Known login.
} else {
// Unknown login.
}
要了解有关地图的详情,请查看Sun tutorial on the subject。
答案 1 :(得分:0)
Arrays.equals(输入,传递)怎么样?
答案 2 :(得分:0)
我没有完全得到你的问题,但我可以猜到你在寻找什么:
而不是数组,您可以使用带有键的hashmap作为用户值,将值作为传递值。所以当你想要一个特定用户的密码时,你可以从地图上获得它。
答案 3 :(得分:0)
我建议你也使用某种键值数据结构。你也可以试试这个:
char[] input = pass.getPassword();
String password = new String(input);
然后你按照BalusC的建议去做。
您可以考虑修剪从包含用户名的文本框中读取的字符串。