日期:2014-05-20  浏览次数:20649 次

去掉注释和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( "\\.* ", " ");