如何打印出中Java中的注释? Java中的注释有//和/**/两种不考虑嵌套,如何将程序中的注释打印出来啊? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 用正则表达式吧,先把代码读到一个字符串里,然后逐个匹配符合模式的。大概是这个样子的:package app;import java.io.File;import java.io.FileNotFoundException;import java.util.Scanner;import java.util.regex.Matcher;import java.util.regex.Pattern;public class Test { /** * @param args * @throws FileNotFoundException */ public static void main(String[] args) throws FileNotFoundException { // TODO Auto-generated method stub Scanner sc = new Scanner(new File( "/home/cherry/workspace/demo/src/app/Test.java")); StringBuffer sb = new StringBuffer(); while (sc.hasNextLine()) { sb.append(sc.nextLine()); sb.append("\n");// linux系统中的换行符,如果是windows,则改为"\r\n" } String input = sb.toString(); // System.out.println(input); String regex1 = "//.+?\\n";// 匹配行注释 String regex2 = "/\\*.+?\\*/";// 匹配块注释 String regex=regex1+"|"+regex2;//两种模式取并集 Pattern pattern = Pattern.compile(regex, Pattern.DOTALL); Matcher matcher = pattern.matcher(input); while (matcher.find()) { System.out.println(matcher.group()); } }} 用/** * */这种方法是显示出javadoc文档的。 已经编译的 .class 文件是不包含注释的。注释只能从 .java 源文件中提取。不过提取的方式比较复杂。 String regex1 = "//.+?\\n";// 匹配行注释其中的?号是什么意思,不明白,请大侠解释一下?还有就是文件中如果有像【String regex1 = "//.+?\\n";// 匹配行注释】这一行的代码时,回显示这样://.+?\\n";// 匹配行注释,这种情况是不正确的,不知怎么样子修改? ?号表示非贪婪匹配:模式满足条件就停止,如果不加问号则匹配尽可能多个。比如字符串abccc,那么a.+?c匹配abc,而a.+c则匹配整个字符串abccc。第2个还没想好,呵呵。 求RCP导出成安装程序的方法 repaint .update.paint之间关系谁知道? Java中关于String的简单而又深入的问题!(有研究者请指教) 一个关于嵌套interface的问题 类型判断的问题 怎样将字符串拆分? SQL语句不能正确执行,高分求助 String类型到byte[]转换问题? 基础问题! 如何在JAVA程序中运行word、excel程序打开word、excel文件? 求助,Calendar打印日历的一个小程序,有几句代码我看不懂! 为什么我写的一个游戏在打成jar包之前可以向上开火,打成jar包后就不行了
import java.io.FileNotFoundException;
import java.util.Scanner;
import java.util.regex.Matcher;
import java.util.regex.Pattern;public class Test { /**
* @param args
* @throws FileNotFoundException
*/
public static void main(String[] args) throws FileNotFoundException {
// TODO Auto-generated method stub
Scanner sc = new Scanner(new File(
"/home/cherry/workspace/demo/src/app/Test.java"));
StringBuffer sb = new StringBuffer();
while (sc.hasNextLine()) {
sb.append(sc.nextLine());
sb.append("\n");// linux系统中的换行符,如果是windows,则改为"\r\n"
} String input = sb.toString();
// System.out.println(input);
String regex1 = "//.+?\\n";// 匹配行注释
String regex2 = "/\\*.+?\\*/";// 匹配块注释
String regex=regex1+"|"+regex2;//两种模式取并集
Pattern pattern = Pattern.compile(regex, Pattern.DOTALL);
Matcher matcher = pattern.matcher(input); while (matcher.find()) {
System.out.println(matcher.group());
}
}
}
/**
*
*/
这种方法是显示出javadoc文档的。
其中的?号是什么意思,不明白,请大侠解释一下?
还有就是文件中如果有像【String regex1 = "//.+?\\n";// 匹配行注释】这一行的代码时,回显示这样://.+?\\n";// 匹配行注释,这种情况是不正确的,不知怎么样子修改?
?号表示非贪婪匹配:模式满足条件就停止,如果不加问号则匹配尽可能多个。比如字符串abccc,那么a.+?c匹配abc,而a.+c则匹配整个字符串abccc。
第2个还没想好,呵呵。