如何在java中比较2个密码?

时间:2016-03-22 15:14:59

标签: java passwords jpasswordfield

我正在处理一个带有注册表单的项目。表格要求用户 在JPassword字段中输入他们选择的密码,并在另一个JPassword字段中再次输入密码。

我正在使用JOptionPane来提示用户密码是否不匹配。但是当我在两者上使用passwordField.getPassword()。toString()时,它们不匹配。 我试过在两者上输入一个基本的“12345”,但我仍然没有运气。

我知道你应该使用.equals(),但是如果没有使用“!=”运算符,那么对于“not equals”来说等价。

这是以下代码。

    if(e.getSource() == submit)
    {   
        String name = nameTextField.getText();
        String address = addressTextField.getText();
        String phoneNumber = numberTextField.getText();
        String dob = datePicker.getDateFormatString();
        String password = passwordField.getPassword().toString();
        String password2 = passwordFieldTwo.getPassword().toString();


        try
        {
            //If the user leaves the field empty
            if(name == null || address == null || phoneNumber == null || dob == null 
                || password == null || password2 == null)
            {
                //Error message appears to prompt the user to 
                //complete the form
                JOptionPane.showMessageDialog(null, "All fields must be complete to submit.", "Woops", JOptionPane.ERROR_MESSAGE);
            }

            if(password != password2)
            {
                    JOptionPane.showMessageDialog(null, "Passwords do not match.", "Woops", JOptionPane.ERROR_MESSAGE);
                    passwordField.setText(null);
                    passwordFieldTwo.setText(null);
            }

对此的任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:1)

!=相关的equals()用于字符串比较,由!x.equals(y)表示
举个例子,我们可以看一下代码,看看两个密码不是是否匹配如下:

if (!Arrays.equals(passwordField.getPassword(), passwordFieldTwo.getPassword())) {
   JOptionPane.showMessageDialog(null, "Passwords do not match.", "Woops", JOptionPane.ERROR_MESSAGE);
}