如何使用Java Scanner测试空行?
2022-09-02 03:16:57
我期望使用扫描仪进行输入,直到没有任何东西(即当用户输入空行时)。如何实现此目的?
我试过了:
while (scanner.hasNext()) {
// process input
}
但那会让我陷入困境
我期望使用扫描仪进行输入,直到没有任何东西(即当用户输入空行时)。如何实现此目的?
我试过了:
while (scanner.hasNext()) {
// process input
}
但那会让我陷入困境
这是一种方法:
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!");
从 http://www.java-made-easy.com/java-scanner-help.html:
问:如果我使用 Java 的扫描仪扫描空行,会发生什么情况?
答:这要视情况而定。如果您使用的是 nextLine(),则空行将作为空字符串读入。这意味着,如果要将空行存储在 String 变量中,则该变量将包含 “”。它不会存储“ ”或放置了多少个空格。如果您使用的是 next(),那么它根本不会读取空行。它们被完全跳过。
我的猜测是,这仍然会在空行上触发,因为从技术上讲,扫描仪将具有空字符串 。因此,您可以检查nextLine()
""
if s.nextLine().equals("")