如何在java中单输入

时间:2014-11-08 12:04:57

标签: java

我正在尝试使用代码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);
}
}

3 个答案:

答案 0 :(得分:1)

运行java程序时需要传递命令行参数。

如果您没有传递任何命令行参数,则args将为空数组,即长度为0。从空数组中访问0元素将抛出ArrayIndexOutOfBoundsException

答案 1 :(得分:0)

让具有主方法的类的名称为MyClass.java然后您必须从命令行运行程序,如

java MyClass 12

其中12是您传递给程序的命令行参数(您可以尝试使用不同的参数)


enter image description here

注意:当您不通过任何参数但访问程序中的args时,您会看到此异常发起

答案 2 :(得分:0)

如果要使用args[0],则需要将命令行参数传递给程序。如果您从IDE运行程序,您将获得例外。