java - 从字符串中删除注释

标签 java

我想做一个获取字符串的函数,如果它有内联注释,它会删除它。

public class sample {

    public static void main(String[] args) {
        String code = "/**THIS IS SAMPLE CODE */ public class TestFormatter{public static void main(String[] args){int i =2; String s= \"name\";\\u give give change the values System.out.println(\"Hello World\");//sample}}";

        CodeFormatter codeFormatter = ToolFactory.createCodeFormatter(null);

        TextEdit textEdit = codeFormatter.format(
                CodeFormatter.K_COMPILATION_UNIT, code1, 0, code1.length(), 0,
                null);
        IDocument doc = new Document(code1);
        try {
            textEdit.apply(doc);
            System.out.println(doc.get());
        } catch (MalformedTreeException e) {
            e.printStackTrace();
        } catch (BadLocationException e) {
            e.printStackTrace();
        }
    }
}

我在 textEdit.apply(doc) 处遇到空指针异常。这是因为它不接受评论。

你能告诉我从字符串中删除注释的最佳方法是什么吗? (请不要建议太高级的解决方案)。

最佳答案

replaceAll("((/\\*)[^/]+(\\*/))|(//.*)", "")

这将删除单行、多行或文档注释。

JavaScript 兼容的正则表达式是 ((/\*)[^/]+(\*/))|(//.*),您可以在 regexpal.com 上尝试。

关于java - 从字符串中删除注释,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18886644/

相关文章:

java - Beans和RabbitTemplate/RabbitHealth出现TomcatStarter错误

java - Jackson:如何获取完整的 JSON 字符串,该字符串在序列化或反序列化过程中进行解析

Java循环问题

java - 在 Windows 上写入 aux 文件时会发生什么?

Bluemix 中的 Java DB Web 启动程序

java - 如何在 Scala 中以字符串格式重复参数

java - 为什么 List 中的元素会自行修改?

java - 无法在 postgresql 中使用 AND 运算符更新数据库中的值

java - 合约编译因 InvoicationTargetException 错误而失败

java - 我该如何处理这个自定义异常?