提取Java注释主体(不带//,/ *,* /)

时间:2016-10-03 09:28:25

标签: java abstract-syntax-tree eclipse-jdt

我使用eclipse java jdt解析器,它似乎缺少以下功能:提取注释主体。

以下代码:

class CommentBodyExtractor extends ASTVisitor {
  @Override public boolean visit(BlockComment node) {
    final int start = node.getStartPosition();
    final int end = start + node.getLength();
    final String comment = source.substring(start, end);
    System.out.println(comment);
    return false;
  }
}

在以下代码上运行时:

/* 
* comment_body
*/

返回完整的注释代码,而我正在寻找的是仅返回comment_body的代码。

我可以执行简单的字符串操作,例如从字符串的开头删除/*,从结尾删除*/,从行开头删除*。但是我想用更优雅的方式(一些库?),你知道吗?

1 个答案:

答案 0 :(得分:1)

解析器需要明确定义的规则才能处理输入文本。 JLS没有为.pac-container { z-index: 1051 !important; } /*之间的文本定义任何结构,因此解析器不能做太多。

如果你想以编程方式操作注释,你应该使用javadoc注释,JDT解析器从中创建一个结构化的*/元素,它反映了语义内容而不是原始文本。