去掉注释和print里的内容
public class aaa
{
public static void main(String[] s)
{
System.out.println( "aaa .delete()))( "+ aaaa);
System.out.println( "aaaaaaa "); //.delete()
System.out.println( "aa*/aaaaa ");
/*System.out.println( "aaa/*aaaa "); // hflksdhf */
System.out.println( "aaaaaaa ");
/*System.out.println( "aaaaaaa ");
System.out.println( "aaaa*/System.out.println( "aaa ");
System.out.println( "aaaaa/*aa ");
dd.delete()
System.out.println( "aaaaaaa ");*/
System.out.println( "aaaaaaa ");//System.out.println( "aaaaaaa ");
System.out.println( "aaaaaaa ");
System.out.println( "aaa//aaaa "); ///*.delete()
/*System.out.println( "aaaaaaa ");
System.out.println( "aaaaa/*aa ");
System.out.println( "aaaa*/ System.out.println( "a//*a*//a ");
}
}
上面的代码是我能想到的,感觉注释比较复杂的例子了,
写了会儿去掉注释和print里的内容代码,头都大了,哪位可以提供个程序啊
------解决方案--------------------用正则表达式应该可以满足你的需求
------解决方案--------------------深奥
不知道你想怎样
------解决方案--------------------不懂楼主要的是什么
------解决方案--------------------mark挺有用的功能
------解决方案--------------------说说我的思路
1,处理单行注释,即//后的内容,这个可以读取出一行,处理一行
利用正则表达式找出符合单行注释,
String regMatchSingleLineComs= "(//.*) ";
2,处理多行注释,把所有代码的连成一个字符串(可以用BufferString.append效率高点),即/* */中的内容.
同样利用正则表达式找出
String regMatchMultiLineComs= "(/\\*.*?\\*/) ";
3,处理print方法里的内容,同样利用正则找出println后面括号里的内容
String regMatchPrintlnMethod= "println\\(\ "{0,1}(.*?)\ "{0,1}\\) ";
PS:以上正则只找出符合条件的,你可以同过replaceAll方法,替换成空格,或其他方法删除
------解决方案--------------------首先去掉单行注释和print里的内容代码strText = strText.replaceAll( "System.out.println\\(\ ".*\ "\\) ", "System.out.println\\(\ "\ "\\) ").replaceAll( "\\.* ", " ");