用Java打印文件中的行

时间:2014-04-24 11:52:24

标签: java file java.util.scanner

我正在制作一个方法,在包含某个单词的文件中打印行。如果参数是空String,则应该打印整个文件。

我已经完成了第一部分工作。 “其他”陈述中的所有内容都很有效;它扫描每一行并打印参数中包含该单词的行。

但是当输入空字符串(“”)作为参数“word”时,我无法打印整个文件。我不确定为什么会这样。

public void printLinesWhichContain(String word) {
    while (this.reader.hasNextLine()) {
        String line = this.reader.nextLine();
        if (word.isEmpty()) {
            System.out.println(line);
        } else {
            Scanner lineReader = new Scanner(line);
            while (lineReader.hasNext()) {
                if (lineReader.next().equals(word)) {
                    System.out.println(line);
                }
            }
        }
    }
}

1 个答案:

答案 0 :(得分:0)

一旦你有了String格式的行,就可以使用indexOf方法来获取单词的索引。

我不会为每一行创建一个扫描仪。

我的意思是你可能想要更改else部分,如下所示。

int indexOfWord = line.indexOf(word);
            if (indexOfWord >= 0) 
            {
                 System.out.println(line);
            }