2013-09-25 71 views
-3

嗨,我是一个java学习者,并试图让这个程序添加两个数字。 虽然运行此我得到这个错误味精..String [] args参数:java.lang.ArrayIndexOutOfBoundsException

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 0 at addnumber.main(addnumber.java:16) Java Result: 1

public class addnumber{ 
    public static void main(String[] args) { 
     String x,y; 
     int a,b,c; 
     x=args[0]; 
     y=args[1]; 
     a=Integer.parseInt(x); 
     b=Integer.parseInt(y); 
     c=a+b; 
     System.out.println(c); 
    } 
} 

我知道我可以使用扫描仪类或串器类然而什么是错用此代码?

+11

你有没有传入任何参数? – Reimeus

+0

您需要将此代码运行为:'java addnumber 3 5',即在命令行上传递2个参数以避免此异常。 – anubhava

+0

你有没有试图检查你的参数?你是否试过调试程序? –

回答

1

如果使用args-array,则必须从外部给程序一些参数,例如从控制台。

所以打开控制台,并转到了java文件所在的目录,并与

javac Addnumber.java 

手动编译现在你应该看到一个.class文件存在。

比写这样一个电话:

java Addnumber 5 9 

你的论点是5和9

而且写首都

类名
+0

感谢kingalione ..我有另外一个问题。 args [0]是第一个参数,args [1]是第二个参数。那么长度会在这里返回2还是1?以及如何从这个数组中获取最后一个参数? – nickfrost

+0

使用: args [args.length-1] – Kingalione

0

如果你使用Eclipse或任何其他工作工具运行。那么你必须设置运行配置参数。

假设您在命令行的代码,那么你必须使用下面的命令

java addnumber 2 4 
0

好Quastion,的问题String[] args,这个问题导致找出什么是运行这段代码此参数的初始值为字符串?或换句话说,IDE如何调用主要方法?如果您运行的Netbeans或者Eclipse这个代码在默认情况下会显示此错误:

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

因为缺省情况下IDE调用方法与字符串数组长度为0:

TheNameOfClass.main(new String[0]) // if you run it in some IDEs 
>java Addnumber // cmd with no args? 

你的情况除外将发生在x=args[0];行,因为您调用,并且您想要使用数组超出范围或大于数组长度的某个项目。

现在你可以在Eclipse中配置它作为例子,因为你需要OR你需要编译和运行Java类手册的“命令提示符”,并通过一些字符串值传递一些字符串值:

>javac Addnumber.java // compile it 
>java Addnumber 1 77 // run it and passs some values to array in main method 
+0

谢谢。我有另一个问题。 args [0]是第一个参数,args [1]是第二个参数。那么长度会在这里返回2还是1?以及如何从这个数组中获取最后一个参数? – nickfrost

+0

事实上,你想读一读这个主题[ARRAY](http://docs.oracle.com/javase/tutorial/java/nutsandbolts/arrays.html),然后当你读完关于array的回答时,你自己回答这个问题 – Husam

相关问题