繁体   English   中英

使用扫描仪,我如何收集输入的所有输入?

[英]Using a Scanner, how do I collect all of the input that I enter?

Scanner input = new Scanner(System.in);
boolean flag = true;

System.out.print("What is your name? ");
flag = true;
while(flag == true){
    name = input.next();
    fullName = fullName + " " + name;
    if(input.hasNext() == false){
        flag = false;
    }
} 

上面的代码只是我整个程序的示例,但是这段代码正是我遇到问题的地方。

使用上面的代码,我输入到控制台的输入为"the one" 问题出在input.next()收集"one"然后将其添加到fullName ,当代码进入if语句以检查是否有更多输入(没有输入)时,程序只是挂起。 我正在使用BlueJ ,程序调试器说该线程仍在运行,但没有任何反应。 我想知道如何使用Scanner收集"the one"的全部输入?

我建议你用

if(!input.hasNext()){
    flag = false;
}

而不是使用

if(input.hasNext() == false){
    flag = false;
}

使用name = input.nextLine();

请参阅: Scanner类的next()和nextLine()方法之间有什么区别?

Java文档扫描仪

next()查找并返回此扫描器的下一个完整令牌。

nextLine()将此扫描程序前进到当前行之外,并返回跳过的输入。

while (true) {
    name = input.nextLine();
    if(name.length() == 0){
        break;
    }
    fullName = fullName + " " + name;
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM