代码注释删除程序(java实现)

在这里插入图片描述

  • 要求:
    编写一个注释删除程序。其输入为一个Java源文件,如test.java,然后程序将源文件中的所有注释都删除,并把结果保存到另外一个文件中,如test2.java。Java中的注释有两种,第一种是以“/”开头,以“/”结尾,它们之间的所有文字都视为注释。第二种是以“//”开头,到本行的末尾结束。

  • 源代码:

package qi_mo;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.IOException;

public class Test3 {
	public static void main(String[] args) throws IOException
	{
		FileReader fr = new FileReader("src\\qi_mo\\aa.java");
		BufferedReader bufferedreader = new BufferedReader(fr);

		FileWriter fw = new FileWriter(new File("src\\qi_mo\\bb.java"));
		BufferedWriter bw = new BufferedWriter(fw);
		char ch;
		String str = "";
		int index;
		boolean hasElseSign = false;
		try{
			while ((str = bufferedreader.readLine().trim()) != null) {
				if (0 != str.length()) {
					if(hasElseSign == false){//如果没有多行注释
						for(index = 0;index < str.length();index++){
							ch = str.charAt(index);
							if((ch == '/')){
								if(str.charAt(index+1) == '/'){//是否有单行注释
									str = str.substring(0,index);
									break;
								}
								if(str.charAt(index+1)=='*'){//是否有多行注释
									hasElseSign = true;
									break;
								}
							}
						}
						if(hasElseSign) continue;
					}
					else{//有多行注释时
						for(index = 0;index < str.length();index++){
							ch = str.charAt(index);
							if((ch == '*')&&(index<str.length()-1)&&(str.charAt(index+1) == '/')){
								hasElseSign = false;
								break;
							}
						}
						continue;
					}
					bw.write(str);//写入文件 把str存入缓冲
					bw.newLine();//换行
					bw.flush();//立即写入 (把缓冲里的所有内容写入)
					System.out.println(str);//

				}
			}
		}
		catch (Exception ioe){
			ioe.printStackTrace();}
	}
}

  • 测试结果:
    不再赘述,自行测试。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值