我有一个Test
类,可以创建Scanner
并读取用户的输入。我想知道用户何时按下Enter
,所以我检查输入的下一个符号是否等于lineSeparator
。但是,即使按下Enter
,它也不会被识别出来。
public class Test {
public static void main(String[] args) {
Scanner reader = new Scanner(System.in);
if (reader.next().equals(System.lineSeparator())) {
System.out.println("finished");
}
/but at the same time, this one works as expected:
String temp = "dog" + System.lineSeparator() + "cat";
System.out.println(temp);
}
}
在使用lineSeparator
构建字符串的同时,它可以正常工作,按预期添加新行。
这里有什么问题以及如何识别用户是否按了Enter
?
答案 0 :(得分:1)
更改您的代码以使用hasNextLine()来检查nextline是否存在,然后使用nextLine()来读取nextLine。像这样的东西
public static void main(String[] args) {
Scanner reader = new Scanner(System.in);
while (reader.hasNextLine()) {
System.out.println(reader.nextLine());
}
System.out.println("finished");
}