我试图通过使用代码int rs=Integer.parseInt(args[0]);
获取输入,但它会引发异常ArrayOutOfBondException
。请帮助我,代码如下,我只需要在命令行参数中输入一次
package techgig;
import java.util.*;
public class Techgig {
public static int ta[]={1,12,5,111,200,1000,10,9,6,7,4};
public static void main(String[] args) {
Vector v = new Vector();
// TODO code application logic here
System.out.println("Amount Mark has:");
System.out.println("=============================");//here is the code
int rs=Integer.parseInt(args[0]);
// int rs=50;
System.out.print("===============================");
//int a=0;
int count=0;
int min=0,temp,totalamount=0;
System.out.print("\nToys Available:{");
for(int a=0;a<ta.length;a++)
{
if(a!=0)
{
System.out.print(",");
}
System.out.print(ta[a]);
}
System.out.print("}\n");
System.out.println("Buy Maximum toys with maximum left");
for(int i=0;i<ta.length;i++)
{
// System.out.print("\t"+ ta[i]);
for( int j=i+1;j<ta.length;j++)
{
if(ta[j]<ta[i])
{
temp=ta[j];
ta[j]=ta[i];
ta[i]=temp;
}
// System.out.print("\t"+ ta[i]);
}
}
for(int k=0;k<ta.length;k++)
{
totalamount=min;
// System.out.print("\t"+ ta[k]);
min=min+ta[k];
if(min >rs)
{
break;
}
count=count+1;
v.add(ta[k]);
}
int sav=0;
sav=rs-totalamount;
//System.out.println("Amount Mark has:"+rs);
System.out.println("Output:{"+v.size()+","+sav+"}");
System.out.println("Explanation");
System.out.println("Maximum number of toys="+v.size()+""+v);
System.out.println("Saving="+sav);
}
}
发布于 2014-11-08 12:06:20
在运行java程序时,需要传递命令行参数。
如果不传递任何命令行参数,那么args
将是空数组,即长度为0
的数组。从空数组访问0
th元素将引发ArrayIndexOutOfBoundsException
。
发布于 2014-11-08 12:08:00
让主方法的类名为MyClass.java
,那么必须从命令行运行程序,如下所示
java MyClass 12
其中12是要传递给程序的命令行参数(您可以尝试使用不同的参数)。
注:当您不传递任何参数,而是访问程序中的args时,您将看到这个异常起源于
发布于 2014-11-08 12:08:59
如果要使用args[0]
,则需要向程序传递命令行参数。如果在IDE中运行程序,则会得到异常。
https://stackoverflow.com/questions/26816931
复制相似问题