我在64位Linux系统上用Java编写了这段代码:
class WrapperClass1
{
public static void main(String s [])
{
int noinput=s.length;
System.out.println("Number of values entered is :- " + noinput);
System.out.println( s[0] + "," + s[1] );
int x = Integer.parseInt(s[0]);
int y = Integer.parseInt(s[1]);
int z = x + y;
System.out.println(" Sum = " + z);
}
};
现在,当我尝试编译它时,它成功编译,但是当我执行程序时,它向我显示一个名为:
的异常 Number of values entered is :- 0
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 0
at WrapperClass1.main(WrapperClass1.java:7)
答案 0 :(得分:0)
您没有传递导致此问题的任何参数。
ArrayIndexOutOfBoundsException
是
抛出表示已使用非法访问数组 指数。该指数为负数或大于或等于 数组的大小。
在您的情况下,您在执行程序时没有通过。因此,在访问s[0]
或s[1]
时会抛出异常。
答案 1 :(得分:0)
你的数组是空的,所以,当你试图像s [0]那样弹出项目时,它会抛出这个异常,因为它没有任何东西。
答案 2 :(得分:0)
输入:字符串[]
哪种方法? - > main(String[] args)
java <className> <input1> <input2> ...
执行
什么时候抛出ArrayIndexOutOfBoundsException
? - &GT;
Initial:String s []
但在初始化变量(数组)之前,尝试访问不可用的索引......
解决方案:通过命令提供输入(因为这些是命令行参数)
即使没有给出输入,如何避免错误? - &GT;检查数组的大小,
希望这有帮助
答案 3 :(得分:0)
您应该考虑使用 if 语句来检查noinput
是否至少为2.然后您可以自由地使用s [0]和s [1]而不会获得{{1 }}