Java 通过控制台传递数组元素来查找数字的平均值

Java 通过控制台传递数组元素来查找数字的平均值,java,arrays,parameters,console,Java,Arrays,Parameters,Console,事实上,我是这个小组的新成员,也是Java的新成员,我想知道如何通过控制台传递数组参数,最后我编写了如下程序: import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; class Average { public static void main(String []args) { int numbers[]; try

事实上,我是这个小组的新成员,也是Java的新成员,我想知道如何通过控制台传递数组参数,最后我编写了如下程序:

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
class Average
  {
    public static void main(String []args)
    {
      int numbers[];

      try
       {
      BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
      numbers =Integer.parseInt( br.readLine());
       }
      catch(NumberFormatException ne)
            {
                    System.out.println("Invalid input: " + ne);
                    System.exit(0);
            }
            catch(IOException ioe)
            {
                    System.out.println("I/O Error: " + ioe);
                    System.exit(0);
            }
        System.out.println(methodAverage());
            }


        public static int methodAverage(int...numbers)
        {
         int sum=0;
         int avg=0;

         for(int x:numbers)
         {
          sum+=x;
          avg=sum/numbers.length;
          return avg;
          }
          }
          }
错误是

Average.java:13: error: incompatible types
numbers =Integer.parseInt( br.readLine());
         ^
required: int[]
found:    int
  1 error
我知道那会来的,但我只是试了一下 所以我只想知道如何通过控制台传递这些数字

numbers = Integer.parseInt(br.readLine());
parserInt返回一个整数,numbers是一个数组。你需要一个循环

关于你的平均方法,你可能想考虑使用浮点数学。否则,10的平均值将为零

parserInt返回一个整数,numbers是一个数组。你需要一个循环


关于你的平均方法,你可能想考虑使用浮点数学。否则,10的平均值将为零。

这就是在命令行或终端中传递值数组的方式,如果您使用它来运行该应用程序,这就足够了

java SomeJavaFile.java 1,2,3,4,5

这是您在命令行或终端中传递值数组的方式,如果您使用它来运行该应用程序,这就足够了

java SomeJavaFile.java 1,2,3,4,5
使用ArrayList numbers=新的ArrayList,而不是int[]编号;改变 numbers=Integer.parseInt br.readLine; 至numbers.addInteger.parseInt br.readLine; 这使您可以读取每个输入行的单个整数

如果有一行输入了多个整数:

String[] nums = br.readLine().split(" ");
int[] numbers = new int[nums.length];
for(int i = 0; i < nums.length; i++) {
 numbers[i] = Integer.parseInt(nums[i]);
}
使用ArrayList numbers=新的ArrayList,而不是int[]编号;改变 numbers=Integer.parseInt br.readLine; 至numbers.addInteger.parseInt br.readLine; 这使您可以读取每个输入行的单个整数

如果有一行输入了多个整数:

String[] nums = br.readLine().split(" ");
int[] numbers = new int[nums.length];
for(int i = 0; i < nums.length; i++) {
 numbers[i] = Integer.parseInt(nums[i]);
}
整数[]

由于数组是一个对象,您需要使用newas在堆上分配它 整数[]=新整数[大小]

Average.java:13:错误:不兼容的类型 numbers=Integer.parseInt br.readLine

->Integer.parseInt返回整数而不是数组,您可以使用:

for(int index=0; index<size; index++) {
    numbers[index] =Integer.parseInt( br.readLine()); // add exception handling code as above
}
您正在使用BufferedReader br=new BufferedReadernew InputStreamReaderSystem.in;要从控制台读取值,我建议您使用Scanner类。看一看

整数[]

由于数组是一个对象,您需要使用newas在堆上分配它 整数[]=新整数[大小]

Average.java:13:错误:不兼容的类型 numbers=Integer.parseInt br.readLine

->Integer.parseInt返回整数而不是数组,您可以使用:

for(int index=0; index<size; index++) {
    numbers[index] =Integer.parseInt( br.readLine()); // add exception handling code as above
}
您正在使用BufferedReader br=new BufferedReadernew InputStreamReaderSystem.in;要从控制台读取值,我建议您使用Scanner类。看一看