public void countFactor(int n) {
int k = 1;
int i = n;
int temp = 1;
int indexa = 1;
int index = 1;
int[] a = new int[indexa];
int[] b = new int[index];
// System.out.print(n + "=");
while (n > k) {
if (n % k == 0) {
// System.out.print(k + "*");
a[indexa - 1] = k;
indexa++;
n = n / k;
}
k++;
}
while (temp != i) {
for (int j = a.length; j > 0; j--) {
while (a[j] != 0 || a[j] != 1) {
temp = temp * a[j];
b[index - 1] = a[j];
index++;
}
}
}
for (int j = b.length; j > 0; j--) {
System.out.println(b[j]);
}
}
编译 数组a[indexa-1] 出现数组越界的异常 请问如何解决啊?

解决方案 »

  1.   

    你的数组长度,在初始化的时候int[] a = new int[indexa];
      

  2.   


    初始化之后就不可以修改了啊?
    我后面indexa改变了 数组都不改变吗?
      

  3.   

    int indexa = 1;
    int index = 1;
    int[] a = new int[indexa];
    int[] b = new int[index];
    这2个数组长度只有1
    数组的长度是不能改变的,初始化的时候就确定了。
      

  4.   


    一旦new了,它的长度就固定了。
      

  5.   

    是的直接这样
    int[] a = new int[1024];
    int[] b = new int[1024];
      

  6.   

    一旦new了,便定了...int[] array=new int[4];
    int Array[];
    int i=10;
    Array=new int[i];
    //这样你可以在确定长度值之后new一下,估计没你要的效果,建议用Collection或其他。
      

  7.   

    如果想让数组的容量变化,只能用ArrayList!!