数组越界 Exception in thread in"main"java.lang.ArrayIndexOutOfBoundsException: 9
原数组
int[] array = {2,432,5221,235,2,5352,1,53,5,3,5364,2,2,63,3553,2,53,532,532};
int[] B = new int[jiShu];//jiShu = 10
int[] C = new int[ouShu];//ouShu = 9
int j = 0;
int k = 0;
for (int i = 0,len = array.length;i<len;i++)
if (array[i] % 2 == 0) {
C[j] = array[i];/**Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 9
这是数组越界的问题
偶数9个空,j从0开始加,本应该正好,但最后一个空加完以后,j还要加1,但j已没用了
循环到下一个数的时,虽然没偶数了但是还是得从上往下判断,这时j多出来的这一个数就超出了数组的空间
解决方法:要么给数组+1,要么看谁先循环完谁放后面,最后就执行不到下面了*/
j++;
} else {
B[k] = array[i];
k++;
}
System.out.println(Arrays.toString(B));//[2, 432, 2, 5352, 5364, 2, 2, 2, 532, 532]
System.out.println(Arrays.toString(C));//[5221, 235, 1, 53, 5, 3, 63, 3553, 53]