2015-01-22 10 views
0

그리고이 질문을 초보자에게 읽어 주셔서 감사합니다.자바 문자열 입출력 문자열

public class a{ 
    public static void main(String[] args){ 
    String[] s = args; 
    System.out.println(s); 
    } 
} 

다음과 같은 입력 : "자바이이 문자열"

이 날 제공 :

에게 "[Ljava.lang

나는 명령에이 코드를 실행하려고 .String; @ 65d4ab0e "를 출력으로 사용합니다.

"this is string"을 출력으로 얻으려면 어떻게해야합니까?

+0

를 살펴 보자는's'는 * 객체 * 인 * 배열 *, 그리고 자바에서 각 개체는'toString()'방식을 가지고 있기 때문에 기본값은 클래스 이름 표현을 표시 한 다음'@'기호와 해시 코드를 추가하는 것입니다. 객체는 인쇄하지 않고 내용은 ['Arrays.toString'] (http : /docs.oracle.com/javase/8/docs/api/java/util/Arrays.html#toString-java.lang.Object:A-) 메소드를 참조하십시오. – Maroun

+0

두 가지 옵션이 있습니다. 가장 쉬운 Arrays.toString (s); 다른 옵션은 문자열 배열을 반복하고 각 멤버를 순서대로 인쇄하는 것입니다. 결과물은 멤버가 아닌 배열 객체를 나타내는 것입니다. 혼란 스러울 경우 다른 언어에서 왔지만 일단 논리적으로 말하면 논리적입니다. –

답변

1

어레이의 내용이 아닌 어레이 객체 자체를 인쇄하고 있습니다. 해시 코드 값 [Ljava.lang.String;@65d4ab0e은 s가 배열이고 String 값을 가지고 있음을 나타냅니다. 선도 인 [에는 인쇄 한 개체가 배열로 표시됩니다.

public class a{ 
    public static void main(String[] args){ 
    String[] s = args; 
    System.out.println(Arrays.toString(s)); 
    } 
} 
+0

이것은 배열을 인쇄하는 방법이지만, 출력은 예상 한 것이 아닙니다. – Tom