如何使用Java Scanner测试空行?

2022-09-02 03:16:57

我期望使用扫描仪进行输入,直到没有任何东西(即当用户输入空行时)。如何实现此目的?

我试过了:

while (scanner.hasNext()) {
    // process input
}

但那会让我陷入困境


答案 1

这是一种方法:

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!");

答案 2

http://www.java-made-easy.com/java-scanner-help.html

问:如果我使用 Java 的扫描仪扫描空行,会发生什么情况?

答:这要视情况而定。如果您使用的是 nextLine(),则空行将作为空字符串读入。这意味着,如果要将空行存储在 String 变量中,则该变量将包含 “”。它不会存储“ ”或放置了多少个空格。如果您使用的是 next(),那么它根本不会读取空行。它们被完全跳过。

我的猜测是,这仍然会在空行上触发,因为从技术上讲,扫描仪将具有空字符串 。因此,您可以检查nextLine()""if s.nextLine().equals("")


推荐