Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/apache-flex/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java阵列(在JRE中)_Java_Arrays - Fatal编程技术网

Java阵列(在JRE中)

Java阵列(在JRE中),java,arrays,Java,Arrays,我有一个任务,我必须设置一个由用户形成的数组(通过cmd行),用户确定长度和其中的数字。我似乎根本无法让它提示用户,但运行它时不会出现错误 这就是我到目前为止所做的: class hw8064 { static void createArray(int x1, int y1){ int numElements; double[] a1; a1 = new double[x1]; double[] a2; a2 = new doub

我有一个任务,我必须设置一个由用户形成的数组(通过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);
              }
          }
      }
    }
hw8064类{ 静态void createArray(intx1,inty1){ 国际货币基金组织; 双[]a1; a1=新的双精度[x1]; 双[]a2; a2=新双精度[y1]; 对于(int i=0;i 0){ 试一试{ numElements=Integer.parseInt(args[0]); }捕获(数字格式){ System.out.println(“参数必须是整数”); 系统出口(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***);
}
publicstaticvoidcreatearray(双x1,双y1,整数){
扫描仪输入=新扫描仪(系统输入);
双a1[]={x1};
a1=新的双[数值];
双a2[]={y1};
a2=新的双[数值];
对于(int i=0;i 0){
试一试{
int numElements=Integer.parseInt(args[0]);
}捕获(数字格式){
System.out.println(“参数必须是整数”);
系统出口(1);
}
试一试{
int numElements=Integer.parseInt(args[0]);
}捕获(阵列索引边界外异常e){
System.out.println(“请为参数输入一个整数”);
系统出口(1);
}
}
createArray(***numElements***);
}
}


我调用该方法的最后一行给了我问题

您需要像这样调用
main
中的
createarray
方法

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 + ">]:");
 }
编辑:完成

publicstaticvoidmain(字符串[]args){
int num1;
int num2;
如果(参数长度!=2){
System.out.println(用法:numOfElements1 numofelements2);
系统出口(0);
}否则{
试一试{
num1=Integer.parseInt(args[0]);
num2=Integer.parseInt(args[1]);
}捕获(例外情况除外){
System.out.println(“参数必须是整数”);
系统出口(1);
}
}
创建数组(num1,num1);
}
静态void createArray(int num`,int num2){
double[]a1=新的double[num1];
double[]a2=新的double[num2];
扫描仪=新的扫描仪(System.in);

对于(int i=0;i您希望在何处输入?这是因为您没有在main函数中调用createArray()。您的代码只是解析参数并立即退出。使用
System.in
中的方法获取用户输入。您说过信息将通过命令行输入。它们将是您的程序参数(如
main()
提示)或控制台条目,而您的程序已经运行(如您的
createArray()
尝试执行的操作)?当程序执行时,它将要求用户输入2个整数,这些整数将决定两个数组的长度。从技术上讲,我不是有两个参数吗?考虑到我创建了两个数组吗?是的,但在你原来的
main
,你只有一个变量用于
mummelements
。我只是给你一个选择。Bu是的,如果你想要两个参数,你应该从cammand行得到参数,然后用两个参数调用你的方法。注意我的编辑。这帮了大忙!谢谢!你不会因为遇到另一个问题而拒绝答案。接受意味着一个特定的答案得到了回答,而不是我们帮助你完成了整个作业。Ap你有什么问题?
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;            
     }
 }