【发布时间】:2012-04-06 16:48:49
【问题描述】:
我在使用 java 的 Scanner 类时遇到了问题。我可以让它很好地读取我的输入,但问题是当我想输出一些东西时。给定多行输入,我想在完全读取所有输入后只打印一行。这是我用于读取输入的代码:
public static void main(String[] args){
Scanner scanner = new Scanner(System.in); //scanner reads block of input
while(scanner.hasNextLine()){
//body of loop goes here
String s = scanner.nextLine();
Scanner ls = new Scanner(s); //scanner to parse a line of input
while(ls.hasNext()){
//body of nested loop goes here
ls.next();
}
}
System.out.println("Fin");
}
即使已读取所有输入行,程序也不会到达 System.out.println 消息。 (请注意,消息不能发送到其他任何地方,否则它将输出与循环运行一样多的次数)。我该如何解决?任何帮助将不胜感激。
【问题讨论】:
-
你能在两个while循环中放一些错误检查打印并告诉我它卡在哪一个吗?
-
我尝试在每个循环中放置打印,但它似乎并没有无限循环,而是更像外部 while 循环无限等待更多输入
-
有人在下面发现了这一点。
标签: java while-loop java.util.scanner