小编典典

如何克服Integer.parseInt(args [0])的ArrayIndexOutOfBoundException?

java

我已经在其中一个视频教程中看到了下面的代码。它可以很好地执行,但是当我尝试在系统中执行时,它可以很好地编译,但是我遇到了运行时错误,

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 0

class Test13 
{
    public static void main(String[] args) 
    {   
        int i = Integer.parseInt(args[0]);
        System.out.println(i);
    }
}

有人可以指导我这段代码有什么问题以及如何纠正吗?

提前致谢!


阅读 383

收藏
2020-11-30

共1个答案

小编典典

__当您尝试访问数组中不存在的索引处的元素时,将发生 ArrayIndexOutOfBoundsException

例如:假设int a [] = {2,4,5,10,3}是一个数组。

数组的大小为5,索引从0开始。

这意味着您的数组范围从索引0到索引4,其中索引0的元素是第一个元素(即2),索引4的元素是最后一个元素(即3)

如果您尝试访问索引范围不在0到4之间的任何元素,它将显示 ArrayIndexOutOfBoundsException, 因为数组中不存在这样的索引。

现在,在您的情况下, args 是命令行参数,这意味着您必须在运行代码时传递参数。

如果从终端运行代码,则在 java yourclassname之后, 您必须传递参数。

例如:java yourclassname 10 20 30

这里10 20 30是您的命令行参数,这些参数存储在 args 数组中,并且 args [0] = 10 args [1] = 20 args
[2] = 30

如果在运行代码期间未传递任何参数,则 args 为空,因此将获得 ArrayIndexOutOfBoundsException

希望它可以帮助您理解命令行参数的概念。

2020-11-30