2015-01-25 5 views
0

내 메서드는 세 개의 매개 변수를 사용합니다. a는 정수의 배열이며, low는 범위의 낮은 수이고 high는 높은 수입니다. 배열을 검색하여 숫자가 낮은 배열과 높은 배열을 찾은 다음 다른 배열에 추가하고 새 배열을 반환하려고합니다.배열에서 원치 않는 제로

초기 배열에 0이 포함되어 있지 않아도 항상 반환 할 배열은 0부터 시작합니다. 예를 들어, a = {7, 9} 인 경우 low가 5이고 high가 7 인 경우 b는 {0, 7, 9}입니다. 누군가 내가 잘못하고있는 것에 대해 조언을 해줄 수 있습니까?

public static int[] range(int[] a, int low, int high) { 

    int[] b = new int[0]; 
    if (a == null || a.length == 0) { 
    throw new IllegalArgumentException(); 
    } 
    else { 
    for (int i = 0; i < a.length; i++) { 
     if (a[i] >= low && a[i] <= high) { 
      b = Arrays.copyOf(b, 
       b.length + 1); 
      b[b.length - 1] = a[i]; 
     } 
    } 
    } 
    return b; 
} 

내가 문제를 재현 할 수없는 그것을 실행할 때,

@Test public void Selector_range_1() { 
    int[] a = {1, 9, 7, 5, 3}; 
    int low = 1; 
    int high = 9; 
    int[] e = {1, 9, 7, 5, 3}; 
    Assert.assertArrayEquals(e, Selector.range(a, low, high)); 
} 
+0

'range (new int [] {7,9}, 5, 7)'는'{7}'을 (를) 반환합니다. – Todd

+0

이것은 잘 작동합니다 [데모] (http://ideone.com/TgFn1u). – dasblinkenlight

+3

그 코드는'ArrayList'를 사용하면 더 간단 해지고 더 빨리 실행됩니다. –

답변

0

난 당신의 코드를 아무 잘못이 없다고 생각 실패 계속 테스트입니다. 문제는 다른 곳에서 코드에 있다고 생각합니다. 결과를 0으로 배열에 저장할 수도 있습니다.

public static void main(String[] args) { 
    int[] a = {7,9}; 
    int[] b = range(a, 0,10); 

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


} 

public static int[] range(int[] a, int low, int high) { 

     int[] b = new int[0]; 
     if (a == null || a.length == 0) { 
     throw new IllegalArgumentException(); 
     } 
     else { 
     for (int i = 0; i < a.length; i++) { 
      if (a[i] >= low && a[i] <= high) { 
       b = Arrays.copyOf(b, 
        b.length + 1); 
       b[b.length - 1] = a[i]; 
      } 
     } 
     } 
     return b; 
    } 
+0

배열의 이름을 변경하려고했지만 여전히 동일한 문제가 있습니다. – me123

+0

내 코드를 실행해도 여전히 {0,7,9}가됩니까? 우리가 당신의 방법을 어떻게 진행하는지 짐작하기는 어렵지만,이 방법은 문제가되지 않습니다. –

+0

나는 너와 똑같은 jUnit을 설치하려고 시도했는데 통과 한 것 같다. [시험 합격의 이미지] (http://imgur.com/cI7JKUq), 왜 시험에 실패했는지 모르겠습니다. –