java - 读取多行输入的问题
问题描述
我正在尝试接受用户输入并对其进行一些修改,但是当用户输入多行时遇到了问题。为了解决这个问题,我尝试了:
public static String getInput() {
Scanner sc = new Scanner(System.in);
String input = "";
System.out.println("Awaiting input...");
if(sc.hasNextLine()) {
System.out.println("Combining Input to One Line...");
while(sc.hasNextLine()) {
//System.out.println(sc.hasNextLine());
//System.out.println("check");
input.concat(sc.nextLine() + " ");
//System.out.println(sc.hasNextLine());
//System.out.println("check2");
//System.out.println("check3");
}
}
sc.close();
return input;
}
它似乎一直有效,直到它到达输入的最后一行,在那里(经过一点调试)它在尝试读取 sc.hasNextLine() 时卡住了。然而,这很奇怪,因为我把这个完全相同的代码放在一个在线编译器中,它工作得很好,除了需要预先输入的事实。它不会等到有任何输入。我在 Java 方面不是很有经验,所以我可以使用一些帮助。
解决方案
如果无限循环是您的问题,则可以通过发送特殊EOF
标记(Ctrl-D
在 Unix 上,通常Ctrl-Z
在 Windows 上)来解决。
推荐阅读
- c++ - #include < > 如何访问库?
- c++ - 使用 C++ 读取具有多列的文本文件
- python - 无法使用网格搜索检索 bestModel
- c# - 从文本文件中提取特定字符串
- flutter - 如何遍历列表以填充 Flutter 和 Dart 中的表格?
- c++ - 将元素插入数组排序顺序
- python - 如何从网站获取 JSON 数据但响应无
- javascript - 在同一窗口中打开 Google 协作平台 HTML 链接
- tableau-api - Tableau LOD 问题(如何使用忽略一个过滤器但保留其他过滤器的总数百分比?)
- google-chrome-devtools - 使用 Chrome 开发工具代码折叠快捷方式