`

Java实现将源文件中的注释替换成空行。

 
阅读更多

  以Css文件为例, 为了能准确地定位,需要把段注释也要替换成空行,网上有现成的实现,不过有问题,对于段注释不能保持原来的行。于是自己写了一个实现。 

 

package test;
import java.io.File;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

import org.apache.commons.io.FileUtils;

/*
 * Java实现将源文件中的注释替换成空行。
 * 
 * 以Css文件为例, 为了能准确地定位,需要把段注释也要替换成空行,网上有现成的实现,不过有问题,对于段注释不能保持原来的行。于是自己写了一个实现。 
 * 
 * 1, Java读系统的行分隔符: System.getProperty("line.separator"), 并用此计算行号。
 * 2, 最小化匹配正规表达式的写法,下面String类型pattern里的第二个问号。
 * 3, 正规表达式的替换。
 */
public class CommontReplace {
	static String pattern = "(?s)/\\*.*?\\*/";
	
	public static void main(String[] args) throws Exception{
		File f = new File("commonReplace/test/CommontReplace.java");
		String content = FileUtils.readFileToString(f, "UTF-8");
		
		content = replace(content);
		System.out.println("content: \n" + content);
	}
	
	/* fdas; */
	public static String replace(String content) throws Exception {
		Pattern p = Pattern.compile(pattern,Pattern.CASE_INSENSITIVE);
		Matcher m=p.matcher(content);
		
		StringBuffer sb=new StringBuffer();
		while (m.find()) {
			String comment = m.group();
			
			String replacement = createBlankLines(getLineNum(comment));
			
			m.appendReplacement(sb, replacement);
		}
		m.appendTail(sb);
		
		return sb.toString();
	}
	
	private static int getLineNum(String content) {
		String[] splitted = content.split(System.getProperty("line.separator"));
		return splitted.length;
	}
	
	private static String createBlankLines(int lineNums) {
		 String lineSep = System.getProperty("line.separator");
		 
		 StringBuilder result = new StringBuilder();
		 for(int i=0;i<lineNums -1 ;i++) {
			 result.append(lineSep + " ");
		 }
		 
		 return result.toString();
	}

}
 
0
0
分享到:
评论

相关推荐

    Python删除Java源文件中全部注释的实现方法

    本文实例讲述了Python删除Java源文件中全部注释的实现方法。分享给大家供大家参考,具体如下: 同事想删除一个Java项目中的全部注释,让我帮忙想想办法。 没找不到合适工具,就写了这个脚本,遍历指定目录,查找*....

    正则统计代码中空行、注释行、代码行纯JAVA

    在编程世界里,统计代码中的空行、注释行和代码行是一项常见的任务,它有助于理解代码结构,评估代码质量,以及进行性能分析。这里我们关注的是如何使用Java语言,结合正则表达式来实现这样的统计功能。正则表达式...

    JAVA 去除注释的jar工具

    例如,可以遍历每个Java源文件,对每行进行检查,用特定的模式匹配并替换注释部分。这种方法需要处理各种注释形式,并确保不破坏代码结构。 2. **编译器参数**:Java的javac编译器提供了`-g:none`选项,可以不生成...

    统计你的项目中所有java文件中有效代码量,注解量及空行数

    然后,我们可以遍历Java源文件,逐行检查每行内容是否匹配上述正则表达式,通过计数器来记录每种类型行的数量。 下面是一个简单的`CodeCount`类实现示例: ```java import java.io.File; import java.io....

    Linux中使用Shell脚本去掉源码注释的方法

    在Linux环境中,编写和执行Shell脚本是一种常见的自动化任务手段,尤其在处理源代码时,例如去除源码中的注释。本文将详细讲解如何利用Shell脚本来实现这一功能。 首先,一个基本的Shell脚本应该以`#!/bin/bash`...

    java代码规范1

    - **Comment**: “comment”特指实现的注释(implementation comments),在Google编程规范中,“documentation comments”一词被替换为“Javadoc”。 #### 2. 源文件基础 **2.1 文件名** - 源文件的命名需严格遵循...

    编码规范(规范中的规范)

    1. 文件注释:每个源文件顶部都应有文件说明,包括文件目的、功能、作者及修改历史等。 2. 类注释:描述类的功能、用途以及与其他类的关系。 3. 函数注释:解释函数的作用、参数和返回值,必要时包含示例或注意事项...

    AStyleAStyle

    3. **去除不必要的空行和注释**:AStyle能检测并删除多余的空行,同时保留必要的空白以保持代码的可读性。它还能处理多行注释的缩进,使其整齐排列。 4. **修复代码结构**:对于不正确的嵌套或未闭合的括号,AStyle...

    AStyle调整源代码格式的小工具

    5. **查看结果**:格式化完成后,原始文件会被重命名为备份文件(通常带有原始扩展名的".orig"后缀),新的格式化后的文件会替换原有的源文件。如果你对格式化结果不满意,可以通过恢复备份文件来撤销操作。 **注意...

    Netbeans7.2 快捷键大全 完整版

    NetBeans 7.2 是一款强大的Java集成开发环境(IDE),它提供了许多便捷的快捷键以提高开发效率。以下是一些关键的快捷键及其功能详解: 1. **完成代码:Ctrl+\** 这个快捷键在你输入代码时会提供智能提示,帮助你...

    eclipse 快捷键

    - **用途**:将重复代码块封装成独立的方法。 - **应用场景**:提高代码复用性和可维护性。 **3. 修改函数结构(Alt+Shift+C)** - **用途**:调整方法参数、返回类型等。 - **应用场景**:优化方法设计,增强...

    Eclipse的快捷键

    Eclipse是一款广泛使用的Java集成开发环境,其丰富的快捷键功能极大地提高了开发效率。以下是对标题和描述中提及的Eclipse快捷键的详细说明: 1. **Ctrl+Q**:此快捷键可以快速定位到最后一次编辑的地方,对于频繁...

    Eclipse使用快捷键整理

    这是一种常见的重构场景,主要用于将重复的代码段抽取成独立的方法。 - **Alt+Shift+C**:修改函数结构。当需要调整函数参数或返回类型时,此快捷键非常有用。 - **Alt+Shift+L**:抽取本地变量。这有助于减少所谓的...

Global site tag (gtag.js) - Google Analytics