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

How to compare 2 passwords in java?

我正在处理一个带有注册表的项目。该表单要求用户 在 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);
            }

如有任何帮助,我们将不胜感激。

equals()相关的!=用于String比较,表示为!x.equals(y)

作为示例,让我们以您的代码为例,查看两个密码 not 是否匹配,请执行以下操作:

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