【问题标题】:array (java.lang.ArrayIndexOutOfBoundsException:-1)数组(java.lang.ArrayIndexOutOfBoundsException:-1)
【发布时间】:2013-11-19 04:41:11
【问题描述】:

这个错误是什么意思? java.lang.ArrayIndexOutOfBoundsException:-1 ?

java.lang.ArrayIndexOutOfBoundsException: -1
    at Game.Game.plantVegetables(Game.java:1160)
    at Game.__SHELL11.run(__SHELL11.java:8)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:601)
    at bluej.runtime.ExecServer$3.run(ExecServer.java:725)

异常发生在:

   Scanner keyIn = new Scanner (System.in);

   for(int leftToPlant=10; leftToPlant>0; leftToPlant--)
      if (field[row1][column1].equals("t") ||
          field[row1][column1].equals("c") ||
          field[row1][column1].equals("p") ||
          field[row1][column1].equals("r"))

【问题讨论】:

  • 您在此处发布的代码将永远无法编译。尝试至少将您的确切代码复制到块级别,但要保持相关性。在这种情况下,你的 for 循环的内容。

标签: java arrays exception indexoutofboundsexception


【解决方案1】:

假设您在 for 循环中有一个数组,您正试图访问数组中具有无效索引的元素。检查您的 for 循环并确保您的数组包含 11 个元素。第一个元素将不会被访问。

包含 10 个元素的数组的 JavaScript 示例代码

    cars=["BMW","Volvo","Saab","Ford","SD","BMW","Volvo","Saab","Ford","SD"];

    for (var i=10;i>0;i--)
    {
     document.write(cars[i]);
    }

输出:

     undefined    - Element 10 
     SD           - Element 9 
     Ford         - Element 8
     Saab
     Volvo
     BMW
     SD
     Ford
     Saab          - Element 2
     Volvo         - Element 1

  Element 0 won't be access because your loop stops at 1.

小提琴: http://jsfiddle.net/VFLLN/

【讨论】:

  • 是的,我做到了,但还是不行!! for(int leftToPlant=11; leftToPlant>0; leftToPlant--)
【解决方案2】:

您正在尝试获取不存在的数组的第 -1 个元素。发布更多代码以获得更准确的答案。

【讨论】:

  • 这是正确的错误 (( if( field[row1][column1].equals("t") || field[row1][column1].equals("c") || field [row1][column1].equals("p") || field[row1][column1].equals("r") ||))
  • 天哪。您为什么不让该代码更具可读性并将其添加到您的原始帖子中?这很容易解决,但有些上下文很好。
  • 我按照你的要求做了。
猜你喜欢
  • 2019-03-30
  • 2018-04-26
  • 1970-01-01
  • 1970-01-01
  • 2013-08-17
  • 2018-11-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多