Java扫描程序:行分隔符不被识别为输入

时间:2018-02-05 21:54:27

标签: java

我有一个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

1 个答案:

答案 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");
    }