去掉注释和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( "\\.* ", " ");
再去掉多行的注释:
Pattern p = Pattern.compile( "/\\*.*?\\*/ ", ,Pattern.DOTALL);
Matcher m = p.matcher(strText);
strText = m.replaceAll( " ");
完事~~~~~~~~~~~
[解决办法]
学习中啊
[解决办法]
可以写一个程序,然后处理你的源文件
[解决办法]
进来学习~~~