当前位置: 首页 > 面试题库 >

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

郝杰
2023-03-14
问题内容

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

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

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



 类似资料:
  • 当我的应用程序安装到Android L preview时,它会失败,出现错误: install_failed_no_matching_abis。 我的应用程序只使用arm库,使用库的功能在x86上被禁用。它在Android L之前工作得很完美,但现在我连它都装不上了。如何为我的应用程序禁用此错误?

  • 刚刚开始使用scala和spark来运行这个简单的程序:

  • 今天在研究Java中Integer.parseInt的源码时,对于int multmin = limit / radix;这一句代码不太理解,请教一下为什么通过 result < multmin可以判断是否越界? 参考资料:https://www.jianshu.com/p/da80a793dd57

  • 我有一个基本的口述如下: 当我尝试执行时,我得到: 我该怎么做才能使我的字典样本能够克服上面的错误? 注意:尽管可能不相关,但字典是从中检索记录生成的,其中,当我打印出时,输出为。

  • 问题内容: 我正在尝试通过React应用程序中的Axios进行API调用,但是我在浏览器中遇到了CORS问题。我想知道我是否可以从客户端解决此问题,因为我内部没有对API的任何访问权。附加的是我的代码。 附件是我的WebPack.config.js 问题答案: 理想的方法是向服务器添加CORS支持。 您也可以尝试使用单独的jsonp模块。据我所知axios不支持jsonp。因此,我不确定您使用的方

  • 我正在尝试通过我的React应用程序中的Axios进行API调用。但是,我在浏览器上遇到了这个CORS问题。我想知道我是否可以从客户端解决这个问题,因为我在内部没有任何对API的访问权限。附件是我的代码。 附件是我的WebPack.config.js