Java-在扫描ArrayList中的整数时,有没有办法在不提供无效输入的情况下中断while循环?

Java-在扫描ArrayList中的整数时,有没有办法在不提供无效输入的情况下中断while循环?,java,arraylist,Java,Arraylist,只有当我给出一些非整数输入时,while循环才会中断。我想要的是用空白输入打破它(只需在没有任何输入的情况下点击“回车”) import java.util.ArrayList; 导入java.util.Scanner; 公共类单元素{ 公共静态void main(字符串[]args){ 扫描仪扫描=新扫描仪(System.in); ArrayList=新建ArrayList(); int in=(整数)null; 而(scan.hasNextInt()){ 添加(scan.nextInt())

只有当我给出一些非整数输入时,while循环才会中断。我想要的是用空白输入打破它(只需在没有任何输入的情况下点击“回车”)

import java.util.ArrayList;
导入java.util.Scanner;
公共类单元素{
公共静态void main(字符串[]args){
扫描仪扫描=新扫描仪(System.in);
ArrayList=新建ArrayList();
int in=(整数)null;
而(scan.hasNextInt()){
添加(scan.nextInt());
}
}
}
谢谢

不太可能

该程序有一个硬编码的期望,即只查找传入号码的列表

所以你必须定义一个特殊的数字来表示:停止循环

为了便于控制,您可以从扫描仪读取原始字符串。然后,任何非数字表示:停止循环

不太可能

该程序有一个硬编码的期望,即只查找传入号码的列表

所以你必须定义一个特殊的数字来表示:停止循环


为了便于控制,您可以从扫描仪读取原始字符串。然后,任何非数字表示:停止循环

您应该将输入解析为
字符串
,然后通过
try/catch
中的代码将其转换为
int
。如果在将
字符串
转换为
int
时出现异常,您知道您得到了一个非整数,并且可以从此处中断while循环。

您应该将输入解析为
字符串
,然后通过
try/catch
中的代码将其转换为
int
。如果您在将
字符串
转换为
int
时遇到异常,您就知道您得到了一个非整数,并且可以从此处中断while循环。

突然想到两个选项,一个哨兵值(可能是
-1
),或者在Windows上用
ctrl-d
(或
ctrl-z
)关闭流。突然想到两个选项,哨兵值(可能是
-1
)或使用
ctrl-d
(或Windows上的
ctrl-z
)关闭流。
import java.util.ArrayList;
import java.util.Scanner;

public class SingleElement {

public static void main(String[] args) {
    Scanner scan = new Scanner(System.in);
    ArrayList<Integer> list = new ArrayList<Integer>();
    int in = (Integer) null;
    while(scan.hasNextInt()){   
        list.add(scan.nextInt());
    }
  }
}