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