0

現在、入力文字列 (パスワード) に辞書の一部が含まれているかどうかをテストするメソッドを作成しています。ディクショナリは、1 行に 1 つの単語を含む単純な 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() への呼び出しが 2 つあります - 内部呼び出しが null を返す可能性があります

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