[英]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.