• ベストアンサー

ファイルから複数行のトークンを文字列検索。

input.txt から "," で区切られた文字列をトークンで分け、 左がパターン、右が検索する文字列になります。 一行の場合は while((line = brInput.readLine())!= null ) { StringTokenizer st = new StringTokenizer(line, ","); if(st.hasMoreTokens()){ pattern = st.nextToken(); text = st.nextToken(); } これでマッチするだけなのですが、複数行の場合はどうでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • hrm_mmm
  • ベストアンサー率63% (292/459)
回答No.2

while((line = brInput.readLine())!= null ) { このループで複数行を得ていますよね。 で、分解結果を、次々代入し直しているから、最後の行(一行分)しかデータが残っていないのでしょう。 pattern と text の変数をArrayListか、HashMapにして要素追加をしてみたら? パターンマッチを行う時も、ループでまわして、マッチング用文字列をArrayListや、HashMapから取得して行います。

yasu182
質問者

お礼

とても勉強になりました。ありがとうございます!!

すると、全ての回答が全文表示されます。

その他の回答 (1)

回答No.1

1行読んだ文字列をトークン分けるのではなくて、 まずは全部読んで、それを1つのStringに格納し、 それをトークンに分ければ良いのでは?

yasu182
質問者

お礼

回答ありがとうございます。 最初に全部読み込む、というのは 配列または Vector を使うのでしょうか?

すると、全ての回答が全文表示されます。

関連するQ&A