- 締切済み
行単位の文字列処理
JAVA初心者です。 以下のようなファイル形式があります。 ファイル名(TEXT.TXT) //////////////////////////////////// Aa BFUNC1,abc,def Ab BFUNC2,ghi BFUNC3 /////////////////////////////////// ファイル行単位の先頭(1文字目)に処理の判定識別子が付きます。 A:2文字目の文字を既存の設定してある文字と置き換える。 B:,で区切り最初が関数名次からが引数になります。(例FUNC1(abc,def)) 上記をJAVAで記述したい場合どのようにしたらいいでしょうか? FileReader in = new FileReader("TEST.TXT"); BufferedReader br = new BufferedReader(in); String line; while ((line = br.readLine()) != null) { /*行単位の先頭一文字をチェック*/ switch(){ ←行単位の先頭一文字を判定するには記述するには? CASE: "A": /*文字列置換*/ br.replace(str ,br); break; CASE:"B": /*方法(1)","で分解して連結する。最初はNextTokenで文字列を連結 させ、次に"("をつけ、次からNextTokenで","をつけていく。","がな くなったら")"をつけるようにするには? */ /*方法(2)","の最初は関数名なのでNextTokenで(1)と同様に"("をつけ る。次からは行末尾までを一度に連結させ、最後に")"をつけるように するには?*/ break; } } ?の個所を教えてください。 ほかに簡単な記述などあればそちらも教えてください。
- みんなの回答 (2)
- 専門家の回答
補足
_ranco_様 回答ありがとうございます。 2点追加で聞きたいことがあります。 line = "A" + rept; は連結ですが、2文字目をreptにおきえるには replace(rept,line.charAt(1); で問題ないでしょうか? ////////////////////////// Astr1,a Astr2,b Astr3,c ////////////////////////// Aの場合で2文字目,に変換する対象文字列の変数があり次の文字 が変換するようにしたい場合は下記のようなやり方でしょうか? case 'A': にif(line.equals(str1));{ /* aの値を設定するには?*/ str1 = line.substring(line.indexOf(',') + 1); で問題ないでしょうか? }else if(line.equals(str2));{ /* bの値を設定するには?*/ }else { /* cの値を設定するには?*/ } よろしくお願いします。