java - 如何根据输入行的多个条件从扫描仪输入中读取预定义的行数
问题描述
我需要阅读最多 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();
解决方案
您可以这样做的一种方法是:
- 将整个文档读入您的应用程序。
- 将每个(行/列)解析为 arrayLists(因此文档的前 10 行)
- 执行必要的计算(仍在 while 循环中)。
推荐阅读
- javascript - 表单在提交时提交到 Textarea
- mysql - 图像无法在 laravel 的数据库中更新
- wpf - 将wpf App带到后台运行的前台?
- amazon-web-services - 在 AWS Glacier 中上传单个文件时出现大量请求
- javascript - 在 React Native 中使用 React-Native-Router-Flux 将标签栏添加到具有自己的导航堆栈的子场景
- java - 致命例外:使用 Firebase 的令牌刷新器
- c# - C# Winform - 当我将面板背景颜色放在其他人的右下角时,我的面板背景颜色一直消失
- android - 如何清理 AOSP 中的模块?
- .net - Dapper 和 SQL 注入
- java - Java 优先级 - 强制转换和位运算符