人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

javaプログラムでテキストを一行ずつ読み込みながら検索する時 コメント部分は無視して検索したいです。
つまり「//」から始める行と 「/*」と「*/」のなかにある行は全部無視したいです。
「//」から始める行は正規表現を使ってできましたが、(下のソース)
// 「//」コメント部分を空白に置き換える
if (line.indexOf("//") != -1) {
line = line.replaceAll("//.*", "");
}

「/*」と「*/」のところができません。

どなたかご教授していただければ幸いです。

よろしくお願いいたします。

●質問者: kimu_507
●カテゴリ:コンピュータ ウェブ制作
✍キーワード:Java コメント ソース テキスト プログラム
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● kn1967
●60ポイント ベストアンサー

美しいコードではありませんが、1行ずつ処理するなら・・・

// ループ前に行う処理。
int mode;
int mode = 1; // 複数行コメントの中であれば2、それ以外は1とする。


// ループの中での1行毎の処理
if (line.indexOf("*/") != -1) { // コメント終端に達したのでmodeを1に戻す。行は削除。
 line = '';
 mode = 1;
} else if (line.indexOf("/*") != -1) { // コメント開始なので modeを2にセット。行は削除。
 line = '';
 mode = 2;
} else if (mode == 2) { // コメント中なので行を削除。
 line = '';
} else if (line.indexOf("//") != -1) { // 1行コメントがあるかチェックして、コメント部分削除。
 line = line.replaceAll("//.*", "");
}

※スミマセンが、動作テストは行わずいきなり書いています。

適宜内容を確認しながらテストを行ってください。


以下あまり関係ありませんが、URL必須との事なので・・・。

question:1246344237

とほほのJava入門

◎質問者からの返答

おかげ様でできました。早速実装してみましだが、完璧でした。

本当に有難うございます。これからもなんがあったらお願いします。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ