读取文件时忽略新行

时间:2017-11-19 02:36:21

标签: java file newline

我正在尝试使用控制台命令java program < doc.txt读取.txt文档中的文本。该程序应查找文件中的单词,并且文件CAN包含空的新行,所以我尝试更改while条件:

while((s = in.nextLine()) != null)

为:

while((s = in.nextLine()) != "-1")

当它找到-1时已停止(我也尝试使用.equals()),但它不起作用。当没有更多要检查的文本时,如何告诉我的程序停止搜索单词?否则,当它找到一个空字符串时(单独换行或新行序列),它会一直停止。

我只找到使用BufferedReader的解决方案,但我不知道如何在控制台命令java program < doc.txt读取文件的情况下使用它。

如果可能需要,我会在while内发布代码:

while((s = in.nextLine()) != null) {
    s = s.toLowerCase();
    Scanner line = new Scanner(s);
    a = line.next();
    if(a.equals("word")) {
        k++;
    }
}

1 个答案:

答案 0 :(得分:3)

确定Scanner何时用完输入的正确方法是检查hasNextLine()条件。使用此循环读取包含空行的字符串序列:

Scanner in = new Scanner(System.in);
while(in.hasNextLine()) {
    String s = in.nextLine();
    System.out.println(s);
}

Demo.