源代码注释过滤器,设计要求如下:
1.采用图形用户界面进行设计。
2.能够打开java源文件,并通过编辑控件进行显示。
3.能够过滤源文件中的注释,包括/*…*/、//,并将过滤后的内容保存为java文。
谁能帮我写一份参照呀! 谢谢各位高手了!
1.采用图形用户界面进行设计。
2.能够打开java源文件,并通过编辑控件进行显示。
3.能够过滤源文件中的注释,包括/*…*/、//,并将过滤后的内容保存为java文。
谁能帮我写一份参照呀! 谢谢各位高手了!
String s="i love java \\\\\"/* just for fun */ \\\"+"\"\\// funny2 \"\\\\"; // Real res here...
编译不会通过的,如果你想做一个注释过滤器,注释的是通过编译的源文件还是没通过的?通过编译的注释很规范按照规范查找就可以了,如果是没通过的he he,难哪,比如说您的举例,编译都通不过,通过分析貌似:String s="i love java \\\\\"/* just for fun */ \\\"+"\"\
(// funny2 \"\\\\"; // Real res here...)--注释语句
剔除/* */ 您这个语句就不知道是啥东东了。
String s="i love java \\\\\" \\\"+"\"\\
我还是别学java了
final boolean IN=true;
final boolean OUT=false;
boolean quote=OUT,block=OUT,line=OUT,slash=OUT;
public void printDecommentSource(File f){
if(f==null)
return;
byte[] b=new byte[1];
byte lastByte='\0';
String s="";
FileInputStream fis;
try{
fis=new FileInputStream(f);
while(fis.read(b)!=-1){
if(b[0]=='"'&&lastByte=='\\'&&!slash)
quote=!quote;
if(b[0]=='*'&&lastByte=='/'&&!quote&&!block){
block=IN;
s=s.substring(0,s.length()-1);
}
if(b[0]=='/'&&lastByte=='*'&&!quote&&block){
block=OUT;
}
if(b[0]=='/'&&lastByte=='/'&&!quote&&!line){
line=IN;
s=s.substring(0,s.length()-1);
}
if(b[0]=='\n'){
System.out.print(s);
s="";
if(!quote&&line)
line=OUT;
}
if(slash)
slash=OUT;
else if(b[0]=='\\'&"e)
slash=IN;
if(!block&&!line&&!(b[0]=='/'&&lastByte=='*'))
s+=(char)b[0];
lastByte=b[0];
}
fis.close();
}catch(Exception e){
e.printStackTrace();
}
}
}public class TestDecomment {
public static void main(String[] args){
if(args.length!=1){
System.err.println("Usage : java TestDecomment FileName");
System.exit(-1);
}
File f=new File(args[0]);
Decomment dc=new Decomment();
dc.printDecommentSource(f);
}
}