、“/\*\*(\s*\*\s*.*\s*?)*” 引号内才是可以使用的正则。
/**
* @hibernate.property
* @return
*/
public String getPicfile() {
return picfile;
}
2、
3、清除JAVA中所有注释,支持形式有
// 1
//22222
// 2
/* 第1行 测试单行 */
/* 第2行 测试单行带前空白 */
/* 第3行 测试单行带尾部字符 */ 3
/* 第4行 测试单行前空白后带字符 */ 4
/*
5 测试多行
*/
/**
6 测试多行
*/
/** 7测试单行 */
JAVA代码如下:
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.UnsupportedEncodingException;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
/**
* title: 清除注释
*
* @author Administrator
* @时间 2009-7-30:下午09:28:10
*/
public class ClearComment {
/** 根目录 */
public static String rootDir = "D:\\workspace\\proj_map\\src\\com";
//"D:\\testdir
// D:\\workspace\\proj_map\\src\\com
public static void main(String args[]) throws FileNotFoundException,
UnsupportedEncodingException {
deepDir(rootDir);
}
public static void deepDir(String rootDir) throws FileNotFoundException,
UnsupportedEncodingException {
File folder = new File(rootDir);
if (folder.isDirectory()) {
String[] files = folder.list();
for (int i = 0; i < files.length; i++) {
File file = new File(folder, files[i]);
if (file.isDirectory() && file.isHidden() == false) {
System.out.println(file.getPath());
deepDir(file.getPath());
} else if (file.isFile()) {
clearComment(file.getPath());
}
}
} else if (folder.isFile()) {
clearComment(folder.getPath());
}
}
/**
* @param currentDir
* 当前目录
* @param currentFileName
* 当前文件名
* @throws FileNotFoundException
* @throws UnsupportedEncodingException
*/
/**
* @param filePathAndName
* @throws FileNotFoundException
* @throws UnsupportedEncodingException
*/
public static void clearComment(String filePathAndName)
throws FileNotFoundException, UnsupportedEncodingException {
StringBuffer buffer = new StringBuffer();
String line = null; // 用来保存每行读取的内容
InputStream is = new FileInputStream(filePathAndName);
BufferedReader reader = new BufferedReader(new InputStreamReader(is,
"UTF-8"));
try {
line = reader.readLine();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} // 读取第一行
while (line != null) { // 如果 line 为空说明读完了
buffer.append(line); // 将读到的内容添加到 buffer 中
buffer.append("\r\n"); // 添加换行符
try {
line = reader.readLine();
} catch (IOException e) {
e.printStackTrace();
} // 读取下一行
}
// 1、清除单行的注释,如: //某某,正则为 :\/\/.*
// 2、清除单行的注释,如:/** 某某 */,正则为:\/\*\*.*\*\/
// 3、清除单行的注释,如:/* 某某 */,正则为:\/\*.*\*\/
// 4、清除多行的注释,如:
// /* 某某1
// 某某2
// */
// 正则为:.*/\*(.*)\*/.*
// 5、清除多行的注释,如:
// /** 某某1
// 某某2
// */
// 正则为:/\*\*(\s*\*\s*.*\s*?)*
String filecontent = buffer.toString();
Map<String, String> patterns = new HashMap<String, String>();
patterns.put("([^:])\\/\\/.*", "$1");// 匹配在非冒号后面的注释,此时就不到再遇到http://
patterns.put("\\s+\\/\\/.*", "");// 匹配“//”前是空白符的注释
patterns.put("^\\/\\/.*", "");
patterns.put("^\\/\\*\\*.*\\*\\/$", "");
patterns.put("\\/\\*.*\\*\\/", "");
patterns.put("/\\*(\\s*\\*\\s*.*\\s*?)*\\*\\/", "");
//patterns.put("/\\*(\\s*\\*?\\s*.*\\s*?)*", "");
Iterator<String> keys = patterns.keySet().iterator();
String key = null, value = "";
while (keys.hasNext()) {
// 经过多次替换
key = keys.next();
value = patterns.get(key);
filecontent = replaceAll(filecontent, key, value);
}
System.out.println(filecontent);
// 再输出到原文件
try {
File f = new File(filePathAndName);
if (!f.getParentFile().exists()) {
f.getParentFile().mkdirs();
}
FileOutputStream out = new FileOutputStream(filePathAndName);
byte[] bytes = filecontent.getBytes("UTF-8");
out.write(bytes);
out.flush();
out.close();
} catch (IOException e) {
e.printStackTrace();
}
}
/**
* @param fileContent
* 内容
* @param patternString
* 匹配的正则表达式
* @param replace
* 替换的内容
* @return
*/
public static String replaceAll(String fileContent, String patternString,
String replace) {
String str = "";
Matcher m = null;
Pattern p = null;
try {
p = Pattern.compile(patternString);
m = p.matcher(fileContent);
str = m.replaceAll(replace);
} catch (Exception e) {
e.printStackTrace();
} finally {
m = null;
p = null;
}
// 获得匹配器对象
return str;
}
}
fff
分享到:
相关推荐
总之,清除Java项目中的注释是一个有策略性的任务,需要根据项目需求和团队协作模式来选择合适的方法。MyEclipse提供了一个直观的界面来快速完成此任务,而Ant和Maven则提供了更灵活的自动化解决方案。在执行清理...
本篇文章将详细探讨如何在Java项目中有效地清除注释。 首先,我们来看一下使用MyEclipse这个强大的Java集成开发环境(IDE)来清除注释的方法。MyEclipse是基于Eclipse定制的一个版本,提供了许多方便的开发工具和...
为了适应这些情况,一种专门用于清除C、C++和Java源代码中注释的工具应运而生。本文将深入探讨这款工具的设计初衷、功能特点、操作便利性以及它在软件开发中的实际应用价值。 首先,这款“C/C++/Java 源代码注释...
能良好的解决使用jd-gui.exe软件反编译程序后,在生成的java文件前部存在的注释: ...3.创建一个java项目,将该项目导入到ide中,修改类的第一行, PATH_STRING变量的值,使其指向需要作用的目录即可;
java_SQL文件批量删除注释 ,实现自动批量处理Sql脚本中的注释,方便发布您自己的脚本,简单好用。亲测可以用的,谢谢支持。
本项目名为“java经典去注释程序”,专门针对Java代码中的三种主要注释类型——行内注释(//)、块注释(/* */)和Javadoc注释(/** */)进行清除。 这个程序采用了枚举(enum)数据类型,这是Java中一种特殊的数据...
我们利用jd-gui反编译.classs代码之后,导出来的java源代码里面含有/**,其实这些标记是之前的java源码的注释,我们如何去掉这些标识了?...原理很简单,用java的正则表达式清理每个文件中的jd相关的注释
总之,“翻译java源码中注释-java_src”项目旨在消除语言障碍,使全球开发者能更轻松地共享和学习Java开源项目,这对于技术的传播和发展具有积极意义。通过高质量的注释翻译,我们可以提升代码的可读性,降低理解和...
然而,关于Java注释的具体规范却常常缺乏明确的标准,导致开发者在实践中难以遵循一致的方法。本文旨在基于网络资源、专业书籍以及实践经验,整理一套详细的Java注释规范指南,以期为开发者提供参考依据。 #### 二...
在Java编程中,处理HTML文件时有时需要去除其中的注释内容,以实现特定的功能需求,比如在给定的项目中,需要读取HTML文本文件并删除其中的注释以便进一步处理或存储。删除HTML注释的过程涉及到对HTML结构的理解以及...
2. 遗失信息:注释中可能包含了开发者对某些问题的解决方案、历史变更记录等重要信息,一旦删除可能永久丢失。 3. 法律风险:在开源项目中,删除许可证注释可能违反开源协议,引发法律纠纷。 4. 影响团队协作:...
【Java项目:坦克大战】 坦克大战是一款经典的策略游戏,它基于Java编程语言实现,通过控制坦克在地图上移动,消灭敌方坦克并保护己方基地。这个项目旨在帮助学习者理解面向对象编程、游戏逻辑设计以及图形用户界面...
Java 实现的俄罗斯方块项目是一个经典的编程练习,它涵盖了多方面的编程技术,包括图形用户界面(GUI)、事件处理、对象编程以及算法设计。在这个项目中,我们将深入探讨以下几个核心知识点: 1. **Java GUI编程**...
这个项目是使用Java来实现经典游戏——俄罗斯方块。它展示了如何利用Java的面向对象特性来构建游戏逻辑,同时提供了丰富的注释,这对于初学者来说是一份极好的学习资料。 1. **面向对象设计**:俄罗斯方块的核心是...
- **注释**:源码中应包含必要的注释,解释代码的功能和实现细节。 通过分析和学习这个Java连连看项目源码,初学者不仅可以掌握Java编程基础,还能深入了解GUI编程、算法设计以及软件开发的实践技巧。同时,这也是...
7. **面向对象编程**:Java是一种面向对象的语言,源码中的各个类代表游戏中的不同元素,如Tetromino代表块,GameBoard代表游戏面板。通过类和对象的交互,实现了游戏的各种功能。 通过阅读和分析这个Java版的...
聪哥创作的一款批量保留路径清理代码注释的工具,目前兼容大部分常见的代码注释,涵盖c、java、python、php、js、html、css、mysql、node、vue、ruby等常见编程项目的注释无损清理。 2023年8月19日更新日志: 1.对...
在Java编程领域,设计一个功能完备且易于理解的计算器程序是学习基本界面设计、事件处理及数学运算逻辑的理想实践项目。本文将深入解析一个带有详细注释的Java计算器程序,旨在帮助读者理解其核心概念与实现细节。 ...
《JAVA_连连看_源代码行行注释》 该程序是使用Java语言实现的一款连连看游戏,通过Myeclipse 8.51作为开发环境,兼容Windows XP、Windows 7等操作系统。游戏具备基本功能,如退出、重列、再来一局,适合在普通...
这个项目不仅是一个完整的可运行游戏,而且代码带有注释,这对于初学者或者想要提升Java编程技能的人来说,是一个很好的学习资源。使用IntelliJ IDEA这样的集成开发环境(IDE)可以方便地打开和阅读源代码,帮助理解...