gpt4 book ai didi

java - Java 中搜索方法的空指针异常

转载 作者:行者123 更新时间:2023-12-02 06:07:48 24 4
gpt4 key购买 nike

所以我找到了这个窃听者,但我还没有更进一步了解问题所在。以下是编译器的说法:

Exception in thread "main" java.lang.NullPointerException at BasicFile.Search(BasicFile.java:215) at TestFile.main(TestFile.java:42)

第 215 行是第一个以 while 开头的行。

String Search(String key) throws IOException {

int lines = 0;
String line = "";
String foundAt = "";
BufferedReader BF = new BufferedReader(new FileReader(f));

try {
while ((line = BF.readLine().toLowerCase()) != null) {
lines++;
//create tokenizer words with what is in line
StringTokenizer words = new StringTokenizer(line);
while(words.hasMoreTokens()) { //while words has tokens left
//go to next token and compare to key
if (words.nextToken().equals(key.toLowerCase()))
foundAt = foundAt + "\n" + lines + ":" + line;
//do nothing continue loop
}
}
BF.close();
} catch(FileNotFoundException e) {
}
return foundAt;
}

最佳答案

当缓冲区读取器用完行数时,它会返回null。您尝试对 null 调用 toLowerCase 方法,最终会引发空指针异常。

以一种不需要您在确保该行非空之前执行 toLowerCase 的方式重构您的代码。

例如:

String next;

while ((next = BF.readLine()) != null) {
String line = next.toLowerCase();
// ...
}

关于java - Java 中搜索方法的空指针异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22134881/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com