我不知道如何解决此“ ArrayIndexOutOfBoundsException”错误

时间:2018-12-10 22:00:42

标签: java arrays nested-loops indexoutofboundsexception

ı创建了嵌套循环以在我的String数组中实现整数:

int ı = 0;

    String[] haha = new String[sizeFinder(numbers)];

    for (int q = 0; q < sizeFinder(numbers);) {

        for (ı = Integer.parseInt(numara[q]);; ı = Integer.parseInt(numara[q])) {

            haha[q] = ofanamof(Arrays.toString(convertDectoB(ı, sizeFinder(numbers))));

            q++;

        }

    }

这是问题所在:在这种情况下,“ sizeFinder(numbers)”等于3。在第二个for循环中,我将实现值的“ q”值一个接一个地增加到“ haha​​ [q]”数组中。但是最后“ q”为3,并且代码中没有“ numara [3]”值。 它给出错误:java.lang.ArrayIndexOutOfBoundsException:索引3超出长度3的范围

我该如何解决?我怎样才能将“ q”值停止在2?

2 个答案:

答案 0 :(得分:0)

好像您是编程的新手,所以我建议您首先要正确理解for的工作原理。

https://docs.oracle.com/javase/tutorial/java/nutsandbolts/for.html

这是来自oracle的for的正式文档。

在使用的类型中,您应该描述3个参数:

for ([1]; [2]; [3]) {
    your code;
} 

[1]循环变量的初始化,例如“ int i = 0”

[2]终止条件,直到循环迭代为止(每次在括号{}中的代码执行时都会检查此条件)

[3]应该如何修改循环变量,例如“ ++ i”或“ --i”(以1为单位增加和减少i)。每当括号内的代码完成后,都将在[2]之后立即执行。

希望有帮助!

答案 1 :(得分:0)

这是答案。感谢所有提供帮助的人。

int ı = 0;

String[] haha = new String[sizeFinder(numbers)];

for (int q = 0; q < sizeFinder(numbers); q++) {
    ı= Integer.parseInt(numara[q]) ;
    haha[q] = ofanamof(Arrays.toString(convertDectoB(ı, sizeFinder(numbers))));
}