使用用户/输入确定的元素创建数组

时间:2013-04-18 01:20:31

标签: java arrays

尝试创建一个数组,并希望这些元素输入的大小。最终这应该取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'(显示两次)是用户不断输入新数字的次数

2 个答案:

答案 0 :(得分:1)

首先,使用j<5

代替yourArray.length

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

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

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

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

答案 1 :(得分: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]

对于您要查找的输入类型,请查看此问题的答案:How to test for blank line with Java Scanner?