Kayıt formuyla bir proje üzerinde çalışıyorum. Form kullanıcıya numaralı telefondan bir JPassword Alanında kendi seçtikleri bir şifre girmesini ve başka bir JPassword Alanında tekrar girmesini ister.Java'da 2 şifre nasıl karşılaştırılır?
Parolaların eşleşmemesi durumunda kullanıcıya sormak için bir JOptionPane kullanıyorum. ancak ikisi üzerinde passwordField.getPassword(). toString() kullandığımda, eşleşmiyorlar. Örneğin her ikisine de temel olarak "12345" girmeyi denedim ama hala şansım yok.
.equals() yöntemini kullanmanız gerektiğini biliyorum, ancak "! =" Işlecini kullanmadan "eşit değil" için buna eşdeğerdir.
burada aşağıdaki kod bulunmaktadır.
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);
}
Bu konuda herhangi bir yardım çok takdir edilecektir. bir örnek görmek için, kodunuzu çekmenize olanak verir gibi
'alanında şifrenizi .getPassword() 'bir char dizisi döndürür. .alling toString()' bir dizge olarak size şifre vermez. "String" ile dizgeye dönüştürebilirsiniz; ancak siz bunu söyleyemezsiniz. "String" yerine "char array" olarak döndürmek için bir neden vardır. Bu soruyu http://stackoverflow.com/questions/8881291/why-is-char-tercih edilen-over-string-for-parola-in-java –
Soru sonrası düzenleme hakkında bir çift olarak işaretlenmiş: ** Sadece '' '' '' '' sonuçlarında kullanın.() 'a benzer bir davranış elde etmek için!! ='. ** – Matt