目录
✔️思路1: 使用Java中现有工具类JavaParser删除注释
一、删除Java代码注释降低查重影响
对Java代码查重中,需要避免注释代码对查重的影响。因此需要去掉Java代码中单行注释、多行注释。去掉Java代码中注释的方法思路分析。
二、删除Java代码注释实现
删除注释过程中,可以假设Java代码在源文件.java文件中、 在如.txt文本文件中
✔️思路1: 使用Java中现有工具类JavaParser删除注释
使用前提: Java代码保存在.java文件中(源代码文件)
具体步骤如下:
步骤1: 使用javaparser读取.java文件具体内容
步骤2:使用javaparser类方法 解析.java文件内容并删除注释
核心代码如下:
import com.github.javaparser.JavaParser;
import com.github.javaparser.ParseResult;
import com.github.javaparser.ast.CompilationUnit;
import com.github.javaparser.printer.PrettyPrinter;
import com.github.javaparser.utils.SourceRoot;
import com.github.javaparser.printer.configuration.DefaultPrinterConfiguration;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
public static String remoreComments(String FILE_PATH) throws IOException {
JavaParser parser = new JavaParser();
ParseResult<CompilationUnit> cu = parser.parse(new File(FILE_PATH));
cu.getCommentsCollection().get().getComments().forEach(comment -> comment.remove()); // 移除所有注释节点
/**
* cu.toString() 返回 Parsing successful
* cu.getResult().get() 返回源代码
*/
// System.out.println("去除注释后: "+ cu.getResult().get().toString());
//返回删除注释后的代码(String形式)
return cu.getResult().get().toString();
}
✔️思路2:按文本文件过滤来删除Java代码中的注释
使用前提: Java代码保存在.txt文件中(文本文件)
具体步骤如下:
步骤1: 使用Files类读取.txt文件具体内容并转换成字符串String
步骤2:使用正则表达式方式将txt文件内容删除,即针对字符串删除其中以//、/** **/ 的字符。
核心代码如下(只实现了删除单行注释):
List<String> lines = Files.readAllLines(Paths.get(filePath));
content = String.join("\n", lines);
// // 移除单行注释
content = content.replaceAll("//.*", "");
注意: 删除多行注释时,可能存在问题或不准确导致得到的字符串为空,这里可以只移除单行注释,允许多行注释带来的误差。