日期:2014-05-20 浏览次数:20772 次
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);