用java做一个去处源代码注释程序时遇到的问题。for循环一行一行输出的时候怎么让他不输出/*和*/中间的

我想用for循环把源代码一行一行地赋给一个bufferedstring,并且输出,但是遇到一个问题,就是遇到/*的时候,如果当前一行和下一行都没有遇到*/,怎么让它不输出... 我想用for循环把源代码一行一行地赋给一个bufferedstring,并且输出,但是遇到一个问题,就是遇到/*的时候,如果当前一行和下一行都没有遇到*/, 怎么让它不输出/*和*/中间的几行。

这是我目前的代码,现在做不下去了。 小弟是新手,求各位大哥帮忙想想啊。
import java.io.*;

public class Main3 {
public static void main(String[] args){
File fin = new File("input.in");
File fout = new File("output.out");
try{
String temp;
StringBuffer sb = new StringBuffer();
int st;
int ed;
int fr = 0;
BufferedReader br = new BufferedReader(new FileReader(fin));
BufferedWriter bw = new BufferedWriter(new FileWriter(fout));
for(;;){
if(br.readLine() != null){
temp = br.readLine();
sb.append(temp);
if(sb.indexOf("//") != -1){
st = sb.indexOf("//");
sb.delete(st,sb.length());
}
if(sb.indexOf("/*") != -1){
st = sb.indexOf("/*");
if(sb.indexOf("*/") != -1){
ed = sb.indexOf("*/");
sb.delete(st,ed);
}
else {
sb.delete(st,sb.length());
}
}
}
else break;
}
展开
 我来答
被坑户内20
2012-03-14 · TA获得超过621个赞
知道小有建树答主
回答量:854
采纳率:0%
帮助的人:473万
展开全部
“遇到/*的时候,如果当前一行和下一行都没有遇到*/, 怎么让它不输出/*和*/中间的几行。”
遇到了/*,只要没遇到*/,那么就一直删除就行了,直到遇到*/ 为止。
所以你在for(;;) 循环前面加一个变量,比如:boolean flag = false; ,
然后在遇到了/* 时,把flag变量改成 true ,每次循环里,如果没有遇到*/,先判断 flag 变量,如果为true ,直接删掉,不管三七二十一。。 直到遇到了 */ ,把flag变量改成false 即可。。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式