0

我目前正在编写一种方法来测试输入字符串(密码)是否包含字典的一部分。字典是一个简单的 txt 文件,每行一个单词。我现在想检查字典的每一行是否包含在输入字符串中。下面的代码应该对我有用:

public boolean dictionaryCheck(String pLine)
{
  BufferedReader myReader;
  String currentLine;
  try
  {
    myReader = new BufferedReader(new FileReader("dict.txt"));
    while(myReader.readLine() != null)
    {
      currentLine = myReader.readLine();
      if(pLine.contains(currentLine))
      {
        return false;
      }
    }
  }
  catch (Exception e){System.out.println("Error: " + e);}
  return true;
}

问题是,当我使用任何参数 String 运行该方法时,出现以下错误:

Error: java.lang.NullPointerException

所以我假设 BufferedReader 没有正确初始化。

有关如何解决此问题的任何建议?代码对我来说似乎很好,但我可能会忽略一个错误。

提前致谢,

乔库克

4

1 回答 1

5

您有两次调用 readLine() - 内部调用可能返回 null

while( (currentLine = myReader.readLine()) != null)
{
  if(pLine.contains(currentLine))
  {
    return false;
  }
}
于 2013-10-01T12:35:24.383 回答