2014-11-08 3 views
0

Я пытаюсь взять ввод с помощью кода int rs=Integer.parseInt(args[0]);, но это исключение исключения ArrayOutOfBondException. Пожалуйста, помогите мне код below.I нужно принимать ввод только один раз в аргументе командной строкиКак принять один вход в java

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); 
} 
} 
+1

Как вы запускаете свою программу? Вы передаете ему аргумент? Если нет, то почему бы существовать args [0]? –

ответ

1

Вам нужно передать аргументы командной строки при запуске программы Java.

Если вы не передадите аргументы командной строки, то args будет пустым массивом, то есть длиной 0. И доступ к 0-му элементу из пустого массива будет кидать ArrayIndexOutOfBoundsException.

0

Пусть имя класса, имеющий свой основной метод является MyClass.java Затем вы должны запустить программу из командной строки, как

java MyClass 12 

Где 12 это аргумент командной строки, которые вы передаете в вашу программу (вы можете попробуйте с другим аргументом)


enter image description here

Примечание: Если вы не передадите какой-либо аргумент, а получите доступ к args в своей программе, вы увидите это исключение, исходящее из

0

Если вы хотите использовать args[0], вам необходимо передать аргументы командной строки программе. Если вы запускаете свою программу из среды IDE, вы получите исключение, которое вы получите.

Смежные вопросы