我想从大arr复制到两个小的

时间:2014-02-11 17:32:29

标签: java arrays

我想将自己的vallues输入到20的大数组中并将其复制到10个中的2个小数组,然后必须打印出第二个数组的值。我得到错误ArrayIndexOutOfBoundsException我的代码有什么问题。 = |

 Scanner in = new Scanner(System.in);
        int[] test = new int[20];
        int[] testA = new int[10];
        int[] testB = new int[10];
        for (int i = 0; i < test.length; i++){
            test[i] = in.nextInt();
        }
        for(int i = 0; i < 10; i++){
            testA[i]= test[i];
        }
        for (int i = 10; i < test.length; i++ ){
            testB[i] = test[i];
            System.out.println(testB[i]);

2 个答案:

答案 0 :(得分:1)

在第二个循环的第一步中,您将为testB[10]分配值,这会导致错误,因为testB的大小只有10(即[0~9]

您需要更改

testB[i] = test[i];
System.out.println(testB[i]);

testB[i-10] = test[i];
System.out.println(testB[i-10]);

或者您可以使用:

for (int i = 0; i < 10; i++ ){
    testB[i] = test[i+10];
    System.out.println(testB[i]);
}

答案 1 :(得分:1)

Alternativley:

System.arraycopy( test , 0, testA , 0, 10 );
System.arraycopy( test , 10, testB , 0, 10 );