2016-06-30 5 views
2

난 임의의 암호를 RandomStringUtils.random과 함께 생성하고 있습니다. 그것은 응용 프로그램이 실행되는 동안 비밀 번호를 생성 할 때 이상한 행동을하는 것 같습니다, 그것은 항상이 구조를 가진 암호를 만듭니다 : [[email protected], [[email protected], [[email protected]. 항상 세 개의 첫 번째 문자를 반복합니다. 암호를 생성하는 내 코드는 다음과 같습니다 나는 main 방법이 코드를 실행하면웹 응용 프로그램의 RandomStringUtils.random 이상한 동작

char[] password = RandomStringUtils.random(10, 0, 0, true, true, null, 
       new SecureRandom()).toCharArray(); 

, 잘 작동 보인다.

+1

toString 메서드에 대해 읽어보십시오 !! – Jens

+0

@Jens, toString은 배열을 도울 수 없습니다 – Andrew

답변

2

원하는 결과를 보려면 char[] password 배열을 Arrays.toString(char[] a)으로 묶어야합니다. (의견)

편집 :

이 때문에 부재의 단지 Object에서 toString() 호출되는 객체 참조는, 자신의 오버라이드 (override)되지 않는 인쇄합니다. 이미 유용한 출력을 제공하지 않는, 말했듯이,

System.out.print(password); 
System.out.print(password.toString()); 

을하지만 :

System.out.print[ln] 통과 된 인스턴스에서 toString를 호출, 그래서 다음 줄은 동일합니다. 당신은 사용해야한다

System.out.print(Arrays.toString(password)); 

배열은이 방법을 무시하지 않습니다.

+0

'System.out.println ("password.toString()");이 코드는 내용을 표시하지 않습니다. – angeldev

+0

@angeldev, 네,'System.out.println (Arrays.toString (password));' – Andrew

+0

@angeldev, 설명을 추가했습니다. – Andrew

2

개체의 내용이 아닌 개체 참조 ([[email protected], [[email protected], [[email protected])를 인쇄하고 있습니다.

+0

OMG! 그건 진실이야. 그런데 main 메소드에서 코드를 실행할 때 응용 프로그램 내부의 객체 참조와 객체의 내용이 인쇄되는 이유는 무엇입니까? – angeldev

+0

'main()'메소드에서'System.out.println (password);'을 사용하고 있습니까? –

+0

예, 애플리케이션 코드 내부에도 있습니다. – angeldev

관련 문제