[英]How to take single input in java
我正在嘗試通過使用代碼int rs=Integer.parseInt(args[0]);
來接受輸入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);
}
}
您需要在運行Java程序時傳遞命令行參數。
如果您不傳遞任何命令行參數,則args
將為空數組,長度為0
。 從空數組訪問第0
個元素將拋出ArrayIndexOutOfBoundsException
。
讓具有您的主要方法的類的名稱為MyClass.java
然后,您必須從命令行運行程序,例如
java MyClass 12
其中12是要傳遞給程序的命令行參數(可以嘗試使用其他參數)
注意:當您不傳遞任何參數而是訪問程序中的args時,您將看到此異常源
如果要使用args[0]
,則需要將命令行參數傳遞給程序。 如果從IDE運行程序,則會得到一個異常。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.