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

Java 使用扫描仪,我如何收集我输入的所有输入?,java,java.util.scanner,Java,Java.util.scanner,上面的代码只是我整个程序的一个示例,但这段代码正是我遇到问题的地方 使用上述代码,我输入控制台的输入是“一个”。问题是在input之后。next()收集“一个”,然后将其添加到fullName,当代码转到if语句检查是否有更多输入(没有输入)时,程序就挂起了。我使用的是BlueJ,程序调试器说线程仍在运行,但什么也没有发生。我想知道如何使用Scanner?使用name=input.nextLine(),收集“one”的全部输入 参考: Java文档 next()查找并返回此扫描程序中的下一个完整

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


使用上述代码,我输入控制台的输入是
“一个”
。问题是在
input之后。next()
收集
“一个”
,然后将其添加到
fullName
,当代码转到if语句检查是否有更多输入(没有输入)时,程序就挂起了。我使用的是
BlueJ
,程序调试器说线程仍在运行,但什么也没有发生。我想知道如何使用
Scanner

使用
name=input.nextLine(),收集
“one”
的全部输入

参考:

Java文档

next()查找并返回此扫描程序中的下一个完整令牌

nextLine()使此扫描仪前进到当前行并返回 跳过的输入


使用
name=input.nextLine()

参考:

Java文档

next()查找并返回此扫描程序中的下一个完整令牌

nextLine()使此扫描仪前进到当前行并返回 跳过的输入

我建议你使用

while (true) {
    name = input.nextLine();
    if(name.length() == 0){
        break;
    }
    fullName = fullName + " " + name;
}
而不是使用

if(!input.hasNext()){
    flag = false;
}
我建议你使用

while (true) {
    name = input.nextLine();
    if(name.length() == 0){
        break;
    }
    fullName = fullName + " " + name;
}
而不是使用

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

您是否可以在设置条件时,将input.hasNext()作为输入?while(input.hasNext()){No.在最后一次输入之后,一旦程序开始检查input.hasNext(),程序最后一次挂起时。Bluej调试器说线程正在运行,但我无法前进到代码中,并且没有错误显示。您能不能将input.hasNext()作为while条件?例如while(input.hasNext()){否。在最后一次输入之后,一旦程序转到check input.hasNext()程序最后一次挂起。Bluej debugger说线程正在运行,但我无法前进到代码中,并且没有显示错误。这似乎不起作用。当我使用nextLine时,它会经过我的输入,然后再输出statements@thankgodforthissite,我添加了修改后的代码以供执行。这不正确eem开始工作。当我使用nextLine时,它会经过我的输入,然后输出后面的内容statements@thankgodforthissite,我添加了修改后的代码以供执行。