在这种情况下,如何使用java util scanner处理新行字符?

在这种情况下,如何使用java util scanner处理新行字符?,java,input,java.util.scanner,Java,Input,Java.util.scanner,我有一个简单的家庭作业,我正在制作一个简单的用户界面(不是GUI),我正在使用扫描仪进行输入 我想读取3个字符串(姓名、地址、社会保险号) 但是,如果用户不插入任何内容,只需按enter键,我的代码就会中断。我得到的不是我需要的3根弦,而是更多的弦,它们错过了比赛 Scanner input = new Scanner(System.in); if (input.hasNext()) { name = input.nextLine(); } Scanner input = new S

我有一个简单的家庭作业,我正在制作一个简单的用户界面(不是GUI),我正在使用扫描仪进行输入

我想读取3个字符串(姓名、地址、社会保险号)

但是,如果用户不插入任何内容,只需按enter键,我的代码就会中断。我得到的不是我需要的3根弦,而是更多的弦,它们错过了比赛

Scanner input = new Scanner(System.in);
if (input.hasNext()) {
    name = input.nextLine(); 
} 
Scanner input = new Scanner(System.in);
if (input.hasNext()) {
    address = input.nextLine(); 
} 
Scanner input = new Scanner(System.in);
if (input.hasNext()) {
    ssnumb = input.nextLine(); 
} 
所以,如果用户按enter键,创建一个新行字符,输入就会溢出。如何避免这种情况或消除空行

示例:

进入

尼克

火星

一些数字

我会:

名称:

地址:
Nick

社会保险号:
Mars

类似这样的:

Scanner input = new Scanner(System.in);
while(!input.next().isEmpty()) { // only when you enter literal string 
//do your scanner stuff here
}
试一试

Scanner input = new Scanner(System.in);
String name = "";
while(name.trim().isEmpty()) {
    name = input.next();
}