我想将自己的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]);
答案 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 );