2017-12-04 13 views
0

그래서 ints를 취하고 길이가 3 인 배열을 입력 할 때이 세 개의 int가있는 배열을 반환하는 메서드를 만들어야합니다.자바 방법을 사용하여 메인에 배열을 출력하는 방법?

이 내가 만든 것입니다,하지만이 [[email protected]

public class IntsToArray { 
    public static int[] fill(int a, int b, int c){ 
     int[] array = new int[3]; 
     array[0] = a; 
     array[1] = b; 
     array[2] = c; 
     return (array); 
    } 
    public static void main(String[] args){ 
     int a = Integer.parseInt(args[0]); 
     int b = Integer.parseInt(args[1]); 
     int c = Integer.parseInt(args[2]); 
     int[] array = fill(a, b, c); 
     System.out.println(array); 
    } 
} 

내가 뭐하는 거지 잘못을 반환?

+0

. "그래서 내 문제는 내가 도서관에서 아무것도 사용할 수 없습니다 오전 그래서 간단한 솔루션은"나는 @Juan의 대답은, 당신은 할 수수록에 대한 간단한 생각 또한 범위 기반 루프'for (int ele : array) {System.out.println (ele); }' – George

답변

1

을 당신은 당신이 그것의 모든 멤버를 반복하고 각각을 인쇄해야 배열을 인쇄합니다. 현재 이 메모리 주소를 인쇄하는 배열 객체를 인쇄하려합니다.은 bhspencer에서 지적한대로 객체 기본 클래스의 기본 toString() 메서드를 사용하여 배열을 인쇄합니다.

이 시도 :

public class IntsToArray { 
    public static int[] fill(int a, int b, int c){ 
     int[] array = new int[3]; 
     array[0] = a; 
     array[1] = b; 
     array[2] = c; 
     return (array); 
    } 
    public static void main(String[] args){ 
     int a = Integer.parseInt(args[0]); 
     int b = Integer.parseInt(args[1]); 
     int c = Integer.parseInt(args[2]); 
     int[] array = fill(a, b, c); 

     for(int i = 0; i < array.length; i++) 
     { 
      System.out.println(array[i]); 
     } 
    } 
} 
+1

정말 고마워요! 내가 필요한 정확한 대답. –

+2

"메모리 주소를 출력합니다"라고 말하면됩니다. 이것은 정확하지 않습니다. 사실 배열의 해시와 클래스 이름의 문자열 표현을 인쇄하고 있습니다. 자세한 내용은 내 대답을 참조하십시오. – bhspencer

1

배열을 System.out.println()에 전달하면 배열의 toString() 메서드가 호출되고 결과 문자열이 기록됩니다. 배열의 경우 toString()의 특정 구현이 없으므로 Super 클래스 Object의 toString()이 사용됩니다.

getClass().getName() + '@' + Integer.toHexString(hashCode()); 

은 그래서 당신이보고있는 [[email protected]입니다 :로는 Object.toString()이 정의된다. 본질적으로 이것은 배열의 인스턴스에 대한 내부 ID입니다.

당신이 라이브러리를 사용하지에 대해 언급했듯이
for (int i = 0; i < array.length; i++) { 
    System.out.println(array[i]); 
} 
0

당신이 클래스의 코드를 추출 할 수 있습니다 :

System.out.println(Arrays.toString(array)); 

나이 :

이렇게 배열의 내용을 인쇄하려면 배열 :

public static String stringify(int[] a) { 
    if (a == null) 
     return "null"; 
    int iMax = a.length - 1; 
    if (iMax == -1) 
     return "[]"; 

    StringBuilder b = new StringBuilder(); 
    b.append('['); 
    for (int i = 0; ; i++) { 
     b.append(a[i]); 
     if (i == iMax) 
      return b.append(']').toString(); 
     b.append(", "); 
    } 
} 

그리고로 사용 따르

public class IntsToArray { 
    public static int[] fill(int a, int b, int c){ 
     int[] array = new int[3]; 
     array[0] = a; 
     array[1] = b; 
     array[2] = c; 
     return (array); 
    } 
    public static void main(String[] args){ 
     int a = Integer.parseInt(args[0]); 
     int b = Integer.parseInt(args[1]); 
     int c = Integer.parseInt(args[2]); 
     int[] array = fill(a, b, c); 

     System.out.println(stringify(array)); 
    } 
}