2015-08-30 61 views
1

我有一個密碼問題,當我在JPasswordField輸入一些密碼時就會得到密碼。mysql workbench中奇怪的密碼類型

kasirlozinka = new JPasswordField("lozinka"); 
final String lozinka = new String(kasirlozinka.getPassword().toString()); 

當我寫一個密碼像MySQL工作臺"lozinka"我得到的東西像"[[email protected]",所以我的問題是,如何解決這一問題,並得到字符串用戶的輸入,以及是什麼類型的密碼本,如何解密它?

+0

你爲什麼叫'新的String()'? 'toString()'已經返回一個字符串。 – Andreas

回答

1

JPasswordField.getPassword()調用返回一個char[](你不想調用該toString(),因爲數組不覆蓋Object.toString)。您可以使用String.valueOf(char[])來製作一個String。喜歡的東西,

char[] pass = kasirlozinka.getPassword(); 
String pw = String.valueOf(pass); 
+0

這解決了問題!謝謝 。 – Djehenghizz

0

"[[email protected]"char[]String表示。 getPassword()返回一個數組char。只是刪除toString

final String lozinka = new String(kasirlozinka.getPassword()); 
+0

當我刪除'toString'時,我得到JPasswordField的標籤。 – Djehenghizz

+0

當你移除'toString'時,你會得到'kasirlozinka.getPassword()',它是一個代表你的密碼的字符數組。 – ka4eli

0

JPasswordField.getPassword()返回char[]。在數組上調用toString()會產生你所看到的。

將密碼轉換爲字符串,刪除toString()

final String lozinka = new String(kasirlozinka.getPassword()); 

這將調用new String(char[])構造。

0

toString()應該被刪除。 kasirlozinka.getPassword()返回的char [],它可以傳遞到一個String構造:

kasirlozinka = new JPasswordField("lozinka"); 
//final String lozinka = new String(kasirlozinka.getPassword().toString()); 
final String lozinka = new String(kasirlozinka.getPassword());