首页 > 解决方案 > 如何根据输入行的多个条件从扫描仪输入中读取预定义的行数

问题描述

我需要阅读最多 10 行,每行只有字符 * 和 . 也有其他条件,如以 * 开头和长度 10。应该读取的最后一行应该有一行后面带有单词 END。我想知道是否有比下面更好的方法来解决它。如果我可以检查 while 循环中的所有条件

  Scanner keyboard = new Scanner(System.in);
    int countLine = 0;
    String line = "";
    while (countLine < 10) {
        line = keyboard.nextLine();
        countLine++;
        if (line.matches("[*.]+") && !line.equals("END") && line.startsWith("*") && line.length() < 10
               ) {
          // do something
        } else {
            break;
        }
    }
    keyboard.close();

标签: javaif-statementwhile-loopjava.util.scanner

解决方案


您可以这样做的一种方法是:

  1. 将整个文档读入您的应用程序。
  2. 将每个(行/列)解析为 arrayLists(因此文档的前 10 行)
  3. 执行必要的计算(仍在 while 循环中)。

推荐阅读