2012-05-02 3 views
0

사용자로부터 텍스트를 받기위한 JPasswordField가있는 GUI 프로그램을 작성 중입니다. 그럼 다음과 같이이를 이용하여 문자열이 값을 캐스팅 :toString()이 Java에서 동일한 입력에 대해 다른 값을 반환하는 이유는 무엇입니까?

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의 다른를 실행합니다. 나는 그 (것)들에 유일한 crytpgraphy 기능을해서 좋다 그래야 그 (것)들을 유일한 것이 바랬다.

답변

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)); 

이렇게하면 배열의 문자가 포함 된 새 문자열이 만들어집니다.

0

그냥 toString of JPasswordField

공공 문자열 toString() {모두 getClass() 반환. getName() + "["+있는 paramString() +

는보기, 매우 명확하게 미국, 자바 SDK의 API를 읽어 "]";}

toString 메서드는 전체 Swing 구성 요소의 toString을 반환하므로 getClass(). getName() + paramString()입니다. 반면 getPassword 메소드는 구성 요소의 암호 필드에 입력 된 실제 암호를 리턴합니다.

0

대신

에서 System.out.println의 ("문자열 패스"+ pass.toString());

당신은 귀하의 요구 사항에 적합 할 수

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

를 사용할 수 있습니다.

관련 문제