Java:匹配两种不同类型的数组

时间:2010-04-13 18:45:45

标签: java arrays

我正在进行密码登录,要求我匹配两个阵列: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");
  }

4 个答案:

答案 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的建议去做。 您可以考虑修剪从包含用户名的文本框中读取的字符串。