** ユーザーからテキストを取得し、検索された単語に応じてテキスト内の単語数を検索したい。 BufferedReaderは、while行ですべての行を取得するようにreadLineメソッドを設定しますが、プログラムはnullポインタ例外エラー を返します。全文ファイルを文字列に変換してカウントする(nullpointerexceptionエラー)
私が1つのreadlineを使用したとき、プログラムは正常に機能しました。
私はこの問題は、whileループであるが、私は問題を理解していないと思います**
はパス書いてください:C:\ Users \ユーザーソウルコレクター\デスクトップ\ yazi大隈
をテキストの名前を書いてください:バッファ
テキストファイル:
はこんにちはこんにちは私の名前は
suatですこんにちはそこ
ハロー
キーワード書く:スレッドに ハイテク
例外を "メイン" のjava.lang.NullPointerException
at project2.Count.SingleWord(Count.java:83)
at project2.Project2.main(Project2.java:45)
C:ソウルコレクター\ \ Users \ユーザーAppData¥Local¥NetBeans¥Cache¥8.2¥executor-snippets¥run.xml:53:Javaが返されました:1
BUILD FAILED(合計時間:18秒)
if(press == 2)
{
System.out.print("Please Write Path : ");
scan.nextLine();
path = scan.nextLine();
System.out.print("Please Write the Name of Text : ");
txtname = "\\"+ scan.nextLine() + ".txt";
finalpath = path + txtname;
File dosya = new File(finalpath);
FileReader fr = new FileReader(dosya);
BufferedReader br = new BufferedReader(fr);
String dizi;
while((dizi = br.readLine()) != null){
System.out.println(dizi);
}
br.close();
/* StringTokenizer st = new StringTokenizer(dizi);
while(st.hasMoreTokens()){
System.out.println(st.nextToken());
}*/
String search=null;
System.out.println("Write the key word : ");
search = scan.nextLine();
Scanner s = new Scanner(dizi.toLowerCase());
while (s.hasNext()) {
toplamkelime++;
if (s.next().equals(search))
kelime ++;
}
System.out.println("Key Word : " + search);
System.out.println("Count of key word : " + kelime);
System.out.println("\n\n\n Total Count of Words : " + toplamkelime);
}
投稿のメッセージ –
これは、単一のreadLine()で動作していたことはどういう意味ですか? whileループを使用しないという意味ですか? –
はい、 br.readLine(); 私は1行を使用してプログラムを使用し、プログラムは動作します。 –