日期:2014-05-20 浏览次数:20986 次
String s = "hafdsdgdfgfdgg;\n/*fdadasfsd\nfdasfdsf*/\nfasfjsdf;"; //so on
String result = s.replaceAll("[/][*](.*?\\s+)*(.*?|\\s+)[*][/]", "");
System.out.println(result);
------解决方案--------------------
如果不一定有换行符,可以把\\s+换成\\s*
------解决方案--------------------
一行一行,什么意思?
你把所有的内容都读入到一个字符串里再替换应该可以
如果是一行一行读入,那么要自己进行判断
for example
BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream("CPTest1.java")));
String buf;
StringBuilder content = new StringBuilder();
while((buf=br.readLine())!=null) {
content.append(buf).append("\n"); //把文件所有的内容保存到一个content中
}
br.close();
String text = content.toString();
text = text.replaceAll("[/][*](.*?\\s*)*(.*?|\\s*)[*][/]", ""); //替换/**/之间的内容
text = text.replaceAll("//.*?(\n)+", "\n"); //替换//的注释,如果删除后面的空白行,则(\n)+,否则\n就可以了
System.out.println(text);