① java中怎么不停的将输入的数存入数组(不知道长度),以回车结束。
1.先明确一点你数字与数字之间是有分隔符号的吧,比如逗号,或者空格..
2.回车是
3.其实你控制台输入的,都可以用字符串形式接受,然后根据你输入的间隔符号(比如逗号和空格)
然后进行切割,nextLine这函数就侦测回车符号的,一旦你回车就算一行结束!
4.不知道数组长度,解决办法很多:
其实你一切割,就能拿到你输入数字的个数了,就是切割后的数组长度;
办法1:你不能输入1024个长度单位的数组吧?数组就定那么长,就可以了,取的时候取有有效位即可!
办法2:用容器,ArrayList存,这玩意底层也是数组特点就是自增长,就是它看长度不够就立马加长一点
办法3:你还是用数组,根据方法2的原理,先定义10个长度,然后进行判断,切割后的数组长度超过
你定义的长度,就在数组内部顶一个临时的新数组,长度也自增长,然后在把临时数组提交给原有
的数组即可!
算了写一个简单点的:输入的时候数字之间逗号隔开,我只是用逗号在切割,当然你也可以换成其他
符号!
importjava.util.Scanner;
publicclassNumberTest{
publicstaticvoidmain(String[]args){
Stringstr=newScanner(System.in).nextLine();
String[]srr=str.split(",");
ArrayList<Number>list=newArrayList<>();
for(inti=0;i<srr.length;i++){
list.add(Integer.valueOf(srr[i]));
}
System.out.println(list);
}
}
② java中怎么定义不确定长度的数组
JAVA没法定义不定长的数组,要么声明为NULL,要么指定其长度。你可以用集合ArrayList来解决这个问题,如果没学过集合,可以先遍历原数组,得到0的个数后,再定义新数组。
③ java定义数组必须指定长度吗
必须指定长度,长度可以在中括号里用数字表示,也可以在后面用大括号直接赋元素值来获得长度。
不指定长度会编译错误,不是造成什么资源浪费。
int[]a=newint[6];//直接给数组长度,但元素各值默认是0
int[]b=newint[]{1,2,3,};//给数组元素赋值,元素个数就是数组长度
④ 如何用java语言创建不定长动态数组
如果是String型其实你可以先把要放入数组中的的元素放进一个StringBuffer里,用分隔符分割,在需要的时候转化成String在用.split()方法分割放进String[]数组里,这样快,需要的代码也不多,int型的话,可以用同样的方法实现,只是数据类型转化可能会影响速度。数组好像不支持动态变量的。