3

ここに私の問題があります。かなり長い Java コードを調べて、特定の単語またはステートメントを含むコメントを見つける必要があります。存在する場合は、次のコードの一部をテキスト ファイルにコピーする必要があります。たとえば。単語が「猫」の場合

     /** 
      *this code is related to the cat 
      */
      public static int a = 5;
      public static String b = "abcd";

出力テキスト ファイルには、コメントの後に "cat" という単語を含む最初の文字列が必要なので、ここでは "abcd" になります。コード全体をテキスト ファイルとして解析し、コメントを探すことができると思いますが、より高速でインテリジェントな方法はありますか?

編集:grepを実行しようとしましたが、文字列の最初の出現が可変距離にあり、取得する行数を増やすと次のコメントも含まれることがあるため、機能しません。

4

1 に答える 1

2

最大の問題は、あなたが求めていることを 100% 正しく行うには、Java の文法用のパーサーを作成/使用して、意図したものを確実に取得する必要があることです。

ただし、ファイルの内容をループして、コメントのスキャンと文字列のスキャンの間で状態を切り替えるオプションがあります。例えば:

Pattern stringPattern = Pattern.compile("String [^=]*= \\"([^\\"]*)\\"");
boolean searchComment = true;
for (String line:fileLines) {
    if(searchComment) {
        searchComment = !line.contains(statement);
    } else {
        Matcher m = stringPattern.matcher(line);
        if (m.matches()) {
            String value = m.group(1);
        }
    }
}

上記のコードの一部は正確には正しくありませんが、大まかなアイデアを提供する必要があります。

于 2013-06-18T23:58:55.960 に答える