有些Java笔试题的算法题中,让自己从键盘输入不定个数的数字,而且没有给结束符标志,这是使用以下代码就会出现跳不出while循环的情况
Scanner in = new Scanner(System.in);
ArrayList<Integer> list = new ArrayList<>();
while (in.hasNextInt()) {
int b = in.nextInt();
list.add(b);
}
for (int v : list){
System.out.println(v);
}
此时运行上述代码,list不能被打印出来,通过DEBUG可以发现,上述代码不能从while循环中退出,此时使用以下代码能解决问题:
Scanner in = new Scanner(System.in);
String a = in.nextLine();
int len = a.length();
int index=0;
int[] nums = new int[len];
String[] str = a.split(" ");
for(String v : str){
nums[index++]=Integer.valueOf(v);
}
index为输入的数字个数,再进行其他操作即可。