【发布时间】:2017-01-25 11:18:07
【问题描述】:
我使用 Scanner 类作为标准输入来从键盘读取输入。 我会逐个令牌读取字符串插入,直到行尾。 记号用空格隔开。
这是我的代码:
Scanner in = new Scanner(System.in);
int count=0;
while(in.hasNextLine()){
while(in.hasNext()){
String s=in.next();
System.out.println(s);
if(s.equals("\n"))
break;
count++;
}
break;
}
System.out.println(count);
问题在于,当我按下回车键时,它似乎将其视为一个空格,并且它永远不会从 while 块中退出,因此它继续期待另一个输入。
在 Linux 中退出 while 并结束程序的唯一方法是按 ctrl+D (=enter),但我正在寻找另一种方式...
我尝试插入一个 if 语句来检查令牌是否为“\n”,但它不起作用。
你能帮我找到解决问题的办法吗?
【问题讨论】:
-
该计划的目标是什么?
-
对不起,程序必须计算字符串中有多少个单词。我知道我可以通过其他方式来做到这一点,例如拆分字符串、放入数组并获取数组的长度,但我正在尝试理解 .hasNext() 方法...
标签: java input java.util.scanner token