我试图接受用户输入并对其进行一些修改,但是当用户输入多行时遇到了问题。为了解决这个问题,我尝试过:
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不太熟悉,因此可以使用一些帮助。
答案 0 :(得分:-1)
如果无限循环是您的问题,则可以通过发送特殊的EOF
标记(在Unix上为Ctrl-D
,在Windows上通常为Ctrl-Z
)来解决。