3

所以这是我的问题。我需要通过一段很长的 java 代码并找到带有特定单词或语句的注释。如果存在,我需要将以下代码的一部分复制到文本文件中。例如。如果这个词是“猫”

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

我需要输出文本文件在带有单词“cat”的注释后面包含第一个字符串,所以这里应该是“abcd”。我想我可以将整个代码解析为文本文件并查找注释,但有没有更快、更智能的方法?

编辑:我尝试做一个 grep 并且它不起作用,因为第一次出现 String 的距离是可变的,并且增加要占用的行数有时也包括下一条评论。

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 回答