尝试解析数据时,for循环中的ArrayIndexOutOfBounds异常

时间:2019-07-18 07:44:57

标签: java arrays

我正在为需求编写代码。例如,如果我有以下测试数据:

multiple variable:
3
Context Change (next in array)
1
Context Change (next in array)
2

Repeat variable:
TESTA
Context change (next in array)
TESTB
Context change (next in array)
TESTC

代码: 我尝试使用j作为数组。 ij都失败了,因为例如如果第一个数组中的i为3,则multiple[i]将为multiple[3],这已经超出范围。

for(int j=0; j <= multiple.length - 1; j++) {
   for(int i=0; i < Integer.parseInt(multiple[i]); i++) {
      result.addValue(Repeat[i]);
   }
} 

输出应该是这个:

TESTA
TESTA
TESTA
Context change (next in array)
TESTB
Context change (next in array)
TESTC
TESTC

2 个答案:

答案 0 :(得分:2)

乍一看,这是您的代码唯一的错误:

for(int j = 0; j <= multiple.length - 1; j++) {
   for(int i = 0; i < Integer.parseInt(multiple[j]); i++) {
      result.addValue(Repeat[i]);
   }
} 

您应该使用 multiple[j] 而不是 multiple[i] ,因为您正在该循环中循环。另一件事是您为什么要 multiple.length - 1 ?另外,请澄清您想做什么,因为您的回答至少对我来说没有太大意义。 您要做什么?如果有帮助,那就太好了!否则澄清问题。希望对您有所帮助。

答案 1 :(得分:1)

我不明白您的要求,但我想您是在问有关多维数组遍历的问题。

例如,这是代码,也许可以帮助您:

    int[][] arr = {{23, 45, 123}, {545}, {124,543}};

    for (int i = 0; i < arr.length; i++) {
        System.out.println("-------" + i + "-------");
        for (int j = 0; j < arr[i].length; j++) {
            System.out.println(arr[i][j]);
        }
    }