我希望用扫描仪输入,直到没有任何东西(即当用户输入空行时)。我该如何实现这一目标?
我试过了:
while (scanner.hasNext()) {
// process input
}
但那会让我陷入困境
发布于 2018-09-25 14:37:55
来自http://www.java-made-easy.com/java-scanner-help.html:
问:如果我使用Java扫描仪扫描空行会怎样? 答:这取决于。如果您正在使用nextLine(),则会将空行读入为空字符串。这意味着如果要将空行存储在String变量中,则变量将保持为“”。它不会存储“”或者放置了许多空格。如果您正在使用next(),那么它根本不会读取空白行。它们完全被跳过了。
我的猜测nextLine()
仍然会在空行上触发,因为从技术上讲,扫描仪将具有空字符串""
。所以,你可以检查一下if s.nextLine().equals("")
发布于 2018-09-25 15:36:48
这里有个方法:
Scanner keyboard = new Scanner(System.in);
String line = null;
while(!(line = keyboard.nextLine()).isEmpty()) {
String[] values = line.split("\\s+");
System.out.print("entered: " + Arrays.toString(values) + "\n");
}
System.out.print("Bye!");
https://stackoverflow.com/questions/-100002726
复制相似问题