1

尝试创建一个数组,并希望元素与输入的大小一样大。最终这应该需要 x 数量的数字,放在一个数组中,然后返回平均值。但首先我需要弄清楚如何在数组中放置元素的大小。

import java.util.Scanner;
import java.util.ArrayList;
//needs to be an array

public class statsv2
{
   public static void main (String args[])
    {
        int[] a= new int[5];
        Scanner sc=new Scanner(System.in);
        System.out.println("Please enter numbers...");
        for(int j=0;j<5;j++)
        {
            a[j]=sc.nextInt();
        }
     }
} 

所以我本质上希望'5'(出现两次)是用户不断输入新数字的次数

4

2 回答 2

1

首先,代替j<5,使用yourArray.length

至于数组大小,这不能动态完成,您有三个选择:

1)创建一个足够大的数组以使用户不会超出它,您必须进行一些额外的检查才能在用户输入结束时停止。

2) 使用ArrayList可以动态添加的 ,然后在用户输入数据后调用 'toArray()' 以提取数组进行处理。

3)完全跳过数组并用于ArrayList保存和处理输入。

于 2013-04-18T01:26:45.607 回答
0

数组的长度实际上不可能是动态的。我会做的一件事是将所有数据放入数组列表之类的结构中,然后当您到达输入末尾时,将该结构转换为数组。

像这样的东西会起作用。

import java.util.*;
import java.lang.Integer;

public class wut {
  public static void main(String[] args) { 
    ArrayList<String> list = new ArrayList<String>();
    Scanner scan = new Scanner(System.in);

    while (scan.hasNext())
    {   
      list.add(scan.next());
    }   

    //^D received.

    int[] a = new int[list.size()];
    for (int i = 0; i < list.size();i++)
    {   
      a[i] = Integer.parseInt(list.get(i));
    }   
    System.out.println(Arrays.toString(a));
  }   
}

输出:

javac *.java

$ java wut
3
4
5
6
7
8
^D
[3, 4, 5, 6, 7, 8]

对于您要查找的输入类型,请查看此问题的答案:如何使用 Java Scanner 测试空白行?

于 2013-04-18T01:31:05.917 回答