java中怎么不停的将输入的数存入数组(不知道长度),以回车结束。
3个回答
2018-02-04
展开全部
如果你是接受控制台的输入,建议使用sanner这个类,new一个这样的类,构造方法传入system.in,这个类有一个nextint方法接受数字型输入,至于存储,可以使用list,最后在调用toarray方法转成数组
展开全部
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);
}
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
用集合比较好. set list 如果只会用数组的话; 可以选择扩容. 扩一次存一次.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询