簡體   English   中英

Java數組(在JRE中)

[英]Java Arrays (in a JRE)

我有一個任務,我必須設置一個由用戶組成的數組(通過cmd行),由用戶確定長度和其中的數字。 我似乎根本無法提示用戶,但是運行它時不會出現任何錯誤。

這是我到目前為止的內容:

class hw8064 {
      static void createArray(int x1, int y1){

     int numElements;

     double[] a1;
     a1 = new double[x1];
     double[] a2;
     a2 = new double[y1];
     for (int i=0; i<=a1.length; i++){
         System.out.println("Please enter a double for array 1[<i>] and one for array 2[<i>]:");
     }


     }  
     public static void main(String [] args){
      int numElements;
      if (args.length > 0){
          try{
              numElements = Integer.parseInt(args[0]);
          } catch (NumberFormatException e){
              System.out.println("Argument must be an integer");
              System.exit(1);
              }
          }
      }
    }

我也知道在配置項目文件以能夠解析JRE中的int時,需要在自變量中添加一些內容,但是我不確定。 在此先感謝您的幫助!

編輯:我大部分已設置,除了我現在找不到變量...

導入java.util.Scanner;

類別hw8064 {

 public static void createArray(double x1, double y1, int numElements) { Scanner in = new Scanner(System.in); double a1[] = {x1}; a1 = new double[numElements]; double a2[] = {y1}; a2 = new double[numElements]; for (int i = 0; i <= a1.length; i++) { System.out.println("Please enter a double for array 1[<" + i + ">]and one for array 2[<" + i + ">]:"); } } public static void main(String[] args) { if (args.length > 0) { try { int numElements = Integer.parseInt(args[0]); } catch (NumberFormatException e) { System.out.println("Argument must be an integer"); System.exit(1); } try { int numElements = Integer.parseInt(args[0]); } catch (ArrayIndexOutOfBoundsException e) { System.out.println("Please enter an integer for the argument"); System.exit(1); } } createArray(***numElements***); } 

}

我調用該方法的最后一行給我帶來了問題

您需要像這樣在main調用creatArray方法

public static void main(String [] args){
   int numElements;
   if (args.length > 0){
      try{
          numElements = Integer.parseInt(args[0]);
      } catch (NumberFormatException e){
          System.out.println("Argument must be an integer");
          System.exit(1);
      }
   }

   createArray(numElements);
}

由於您只能從命令行獲取一個參數,因此該方法只應具有一個參數

 static void createArray(int numElements){
     double[] a1 = new double[x1];

     for (int i=0; i<=a1.length; i++){
         System.out.println(
                   "Please enter a double for array [<" + i + ">] " 
                    + "and one for array 2[<" + i + ">]:");
 }

如果要從命令行獲取兩個參數,則應在main

if (args.length != 2){
    System.out.println(Usage: numOfElements1 numOfElments2);
    System.exit(0);
} else {
    try {

     } catch ( ..... ) {

     }
}

編輯:完成

public static void main(String[] args){
    int num1;
    int num2;

    if (args.length != 2){
        System.out.println(Usage: numOfElements1 numOfElments2);
        System.exit(0);
    } else {
        try {
            num1 = Integer.parseInt(args[0]);
            num2 = Integer.parseInt(args[1]);

        } catch (Exception ex) {
            System.out.println("Arguments must be an integers");
            System.exit(1);  
        }
    }
    createArray(num1, num1);
}

static void createArray(int num`, int num2){
     double[] a1 = new double[num1];
     double[] a2 = new double[num2];

     Scanner scanner = new Scanner(System.in);

     for (int i=0; i<=a1.length; i++){
         System.out.println(
                   "Please enter a double for array1[<" + i + ">] ");
         double number1 = scanner.nextDouble();
         a1[i] = number1;

         System.out.println(
                   "Please enter a double for array2[<" + i + ">] "); 
         double number2 = scanner.nextDouble();
         a2[i] = number2;            
     }
 }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM