0

ユーザーからテキストを受信するためのJPasswordFieldを持つGUIプログラムを書いています。次に、これを次のように使用して、この値を文字列にキャストします。

 char[] pass = txtPass.getPassword(); //where txtPass is the JPasswordField
 System.out.println("Password:");
 ////////////////Check password/////
 for (int i=0; i< pass.length; i++)
    System.out.println(pass[i]);

 System.out.println("String pass"+ pass.toString());

ただし、アプリケーションを実行するすべてのものは、pass.toString()とは異なります。その上でより多くの暗号化機能を実行できるように、それらがユニークなものであることを望みます。

4

4 に答える 4

2

試す

System.out.println( "String pass: " + new String( pass ) );

非常に大きな指数の場合は、2乗による指数を使用します - http://en.wikipedia.org/wiki/Exponentiation_by_squaring

于 2012-05-02T11:03:46.023 に答える
1

配列のtoString関数は、配列内の文字を返しません。代わりにこれを試してください:

char[] pass = txtPass.getPassword(); //where txtPass is the JPasswordField
 System.out.println("Password:");
 ////////////////Check password/////
 for (int i=0; i< pass.length; i++)
    System.out.println(pass[i]);

 System.out.println("String pass"+ new String(pass));

これにより、配列の文字を含む新しい文字列が作成されます。

于 2012-05-02T11:04:48.787 に答える
0

Java SDK API を読んでください。非常に明確に述べられています。

JPasswordField の toStringも参照してください

public String toString() { return getClass().getName() + "[" + paramString() + "]";}

toString メソッドは、Swing コンポーネント全体の toString を返すため、getClass().getName() + paramString() になります。一方、getPassword メソッドは、コンポーネントのパスワード フィールドに入力された実際のパスワードを返します。

于 2012-05-02T11:07:53.437 に答える
0

それ以外の

System.out.println("文字列パス"+ pass.toString());

あなたが使用することができます

System.out.println("String pass"+ String.valueOf(pass));

あなたの要件に合うことができます。

于 2012-05-02T11:08:51.720 に答える