我正在制作一个方法,在包含某个单词的文件中打印行。如果参数是空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);
}
}
}
}
}
答案 0 :(得分:0)
一旦你有了String格式的行,就可以使用indexOf方法来获取单词的索引。
我不会为每一行创建一个扫描仪。
我的意思是你可能想要更改else部分,如下所示。
int indexOfWord = line.indexOf(word);
if (indexOfWord >= 0)
{
System.out.println(line);
}