我正在制作一个方法,用于打印文件中包含某个单词的行。如果参数是一个空字符串,那么它应该打印整个文件。
我已经开始工作了。"else"语句中的所有内容都非常有效;它扫描每一行并打印参数中包含单词的行。
但是当输入一个空字符串(")作为参数"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);
}
}
}
}
}
一旦您有了字符串格式的行,您就可以使用indexOf方法来获取单词的索引。
我不会为每一行创建一个扫描仪。
我的意思是,你可能想更改其他部分如下。
int indexOfWord = line.indexOf(word);
if (indexOfWord >= 0)
{
System.out.println(line);
}