【问题标题】:ArrayIndexOutOfBoundsException when accessing args [closed]访问 args 时出现 ArrayIndexOutOfBoundsException [关闭]
【发布时间】:2016-07-17 11:41:21
【问题描述】:

当我运行这段代码时:

public class Calc2 {
    public static void main(String[] args) {
        double result;
        result = Double.parseDouble(args[0]) + Double.parseDouble(args[1]);
        System.out.print(result);
    }
}

我明白了:

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 0
        at Calc2.main(Calc2.java:4)

【问题讨论】:

  • 发布错误,而不是错误的错误截图。
  • 这是完整的图像
  • 它说 ArrayIndexOutOfBoundsException。这是一个很大的线索。看第 4 行。您在索引 0 和索引 1 处访问 args 数组两次。也许 args 不包含您认为的内容。花时间学习如何使用调试器。
  • 您错过了要点:使用复制和粘贴将错误作为文本发布。图片没用。

标签: java


【解决方案1】:

您收到此错误消息是因为args 数组的长度比您要访问的位置短。正如其他答案所提到的,您可能没有发送命令行参数,或者您可能只发送一个,当您尝试访问第二个 (args[1]) 时,您会收到 Array index out of bounds 异常。

您可以做的最好的事情是在访问值之前检查数组的长度,或者甚至在 for 指令中进行迭代,直到达到数组的长度。

使用此指令打印值:

for(int i=0; i< arr.length;i++)
{
    System.out.print(Double.parseDouble(args[i]));
}

如果它没有显示任何内容是因为您没有将参数传递给程序。

【讨论】:

  • 那怎么解决
  • @omarwael 我已经更新了我的答案,你可以检查一下
  • 我很抱歉,因为我是初学者,但它在哪里
猜你喜欢
  • 2020-03-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-09-08
  • 1970-01-01
  • 1970-01-01
  • 2011-08-05
  • 2014-12-27
相关资源
最近更新 更多