dポイントプレゼントキャンペーン実施中!

 Java初心者です。よろしくお願いします。

テキストファイルから文書を読み込み、その文章の中のある単語を検索するにはどうすればよいのでしょうか?

BufferedReader br = new BufferedReader(new FileReader("test1.txt"));

で読み込みをさせているのですが、読み込んだ後、その文章の中の単語(文字列)を検索し、それを何かに出力したいと考えています。

どなたかアドバイスをください!!よろしくお願いします!!

A 回答 (2件)

>存在するまで検索し(2)の方法で)、あれば出力という流れでいいのでしょうか?



いいのでしょうか?と聞かれても、困るのですが、
あなたが望む処理の流れに合っていれば、いいんでないですか?

サンプルが欲しいとのことなので、とりあえず、indexOfを使った例です。
求めているものと違うかも知れません。あと例外処理とか考慮してないです。
test1.txt中のXXXという文字列を含む行を検索して、
見つけたら出力します。でもXXXXもXXXXXXもヒットしますよ。

----------
BufferedReader br = new BufferedReader(new FileReader("test1.txt"));
String line = null;
while((line = br.readLine()) != null){
  if (line.indexOf("XXX") != -1){
    System.out.println(line);
  }
}
br.close();
----------

思うんですが、使い方も分からずとにかく「実現するためのコードを書いてください。」
では理解したことにならないと思いますよ。
    • good
    • 0

具体的になにが分からないのでしょうか?


テキストファイルを読み込むことは、できたんですよね?
検索するというからには、
「ある文字列中に、特定の文字列が含まれるかどうか調べる」
ということを知りたいのでしょうか?
少し漠然とした質問なので、なにに対しての質問なのか分からないです。

以下は一例ですが、
1)BufferedReaderを使ってテキストファイルを一行ずつ読み込む。
2)読み込んだ一行に対して、特定の文字列が含まれるかどうかをチェックする。
3)含まれていたら、何かに出力する。

この例で、2)の方法が分からないというのであれば、
String#indexOf(String str)というメソッドを使えば、
文字列中のどの位置に部分文字列が存在するか分かります。
存在しない場合は、-1が返ります。これを使って検索文字列の存在チェックを
すればよいと思います。

JDK1.4以降でしたら、
String#matches(String regex)というメソッドを使えば、
正規表現を使ってより複雑な検索を行うことができると思います。

この回答への補足

回答ありがとうございます。分かりにくい漠然とした質問で申し訳ありません!

「ある文字列中に、特定の文字列が含まれるかどうか調べる」ということを知りたいです。

ちなみに2)のメソッドを調べたのですがいまいちピンときませんでした。

頂いたアドバイスを元に自分なりに考えてみたのですが、

BufferedReaderを使ってテキストファイルを一行ずつ読み込み、whileで文字列が

存在するまで検索し(2)の方法で)、あれば出力という流れでいいのでしょうか?

できれば2)のコードの書き方を教えてください。申し訳ありません。

補足日時:2002/10/07 14:46
    • good
    • 0
この回答へのお礼

 分かりにくい質問で申し訳ありません。
非常に分かりやすい回答ありがとうございます。
教えていただいた流れでがんばってみます。

ぜひまたよろしくお願いします。ありがとうございました。

お礼日時:2002/10/07 14:59

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!