java中怎么不停的将输入的数存入数组(不知道长度),以回车结束。

主要有两点,一个是数组长度不确定,一个是:怎么以回车结束循环

如果你是接受控制台的输入,建议使用sanner这个类,new一个这样的类,构造方法传入system.in,这个类有一个nextint方法接受数字型输入,至于存储,可以使用list,最后在调用toarray方法转成数组
温馨提示:答案为网友推荐,仅供参考
第1个回答  2018-02-04
1.先明确一点你数字与数字之间是有分隔符号的吧,比如逗号,或者空格..
2.回车是\r\n
3.其实你控制台输入的,都可以用字符串形式接受,然后根据你输入的间隔符号(比如逗号和空格)
  然后进行切割,nextLine这函数就侦测回车符号的,一旦你回车就算一行结束!
4.不知道数组长度,解决办法很多:
其实你一切割,就能拿到你输入数字的个数了,就是切割后的数组长度;

办法1:你不能输入1024个长度单位的数组吧?数组就定那么长,就可以了,取的时候取有有效位即可!
办法2:用容器,ArrayList存,这玩意底层也是数组特点就是自增长,就是它看长度不够就立马加长一点
办法3:你还是用数组,根据方法2的原理,先定义10个长度,然后进行判断,切割后的数组长度超过
你定义的长度,就在数组内部顶一个临时的新数组,长度也自增长,然后在把临时数组提交给原有
的数组即可!
算了写一个简单点的:输入的时候数字之间逗号隔开,我只是用逗号在切割,当然你也可以换成其他
符号!
import java.util.Scanner;
public class NumberTest {
public static void main(String[] args) {
String str=new Scanner(System.in).nextLine();
String[] srr=str.split(",");
ArrayList<Number> list=new ArrayList<>();
for (int i = 0; i < srr.length; i++) {
list.add(Integer.valueOf(srr[i]));
}
System.out.println(list);
}
}

本回答被提问者采纳
第2个回答  2021-10-25
用集合比较好. set list 如果只会用数组的话; 可以选择扩容. 扩一次存一次.
相似回答