1つだけ過去を変えられるとしたら?

input.txt から "," で区切られた文字列をトークンで分け、
左がパターン、右が検索する文字列になります。
一行の場合は

while((line = brInput.readLine())!= null ) {
StringTokenizer st = new StringTokenizer(line, ",");
if(st.hasMoreTokens()){
pattern = st.nextToken();
text = st.nextToken();
}

これでマッチするだけなのですが、複数行の場合はどうでしょうか?

A 回答 (2件)

while((line = brInput.readLine())!= null ) {


このループで複数行を得ていますよね。

で、分解結果を、次々代入し直しているから、最後の行(一行分)しかデータが残っていないのでしょう。
pattern と text の変数をArrayListか、HashMapにして要素追加をしてみたら?

パターンマッチを行う時も、ループでまわして、マッチング用文字列をArrayListや、HashMapから取得して行います。
    • good
    • 0
この回答へのお礼

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

お礼日時:2006/12/03 20:25

1行読んだ文字列をトークン分けるのではなくて、


まずは全部読んで、それを1つのStringに格納し、
それをトークンに分ければ良いのでは?
    • good
    • 0
この回答へのお礼

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

お礼日時:2006/12/01 18:26

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


おすすめ情報