我已经在其中一个视频教程中看到了下面的代码。它可以很好地执行,但是当我尝试在系统中执行时,它可以很好地编译,但是我遇到了运行时错误,
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); } }
有人可以指导我这段代码有什么问题以及如何纠正吗?
提前致谢!
__当您尝试访问数组中不存在的索引处的元素时,将发生 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
希望它可以帮助您理解命令行参数的概念。