编写一个java程序来删除同一个java程序中的注释?

vik*_*iii 0 java process

我正在编写一个java程序来删除相同java程序中的注释.我在考虑使用文件阅读器.但我不确定它是否会奏效.

因为两个进程将使用相同的文件.但我认为在执行代码之前,java文件会生成一个.class文件.所以,如果我用a filereader来编辑java文件.它不应该给我错误,另一个进程已经在使用此文件.

我认为对吗?

提前致谢.

Pau*_*aul 7

是的,你可以毫无问题地做到这一点.

注意:注意以下事项:

String notAComment  = "// This is not a comment"; 
Run Code Online (Sandbox Code Playgroud)


seb*_*ian 7

如果您只想从Java程序中删除注释,为什么不使用正则表达式进行简单的搜索和替换,并将所有注释转换为空字符串?

在Java中,这是一种冗长的方式:

import java.io.File;    
import java.io.FileReader;    
import java.io.IOException;    
import java.io.BufferedReader;    

class Cleaner{    

    public static void main( String a[] )    
    {    
        String source = readFile("source.java");    

        System.out.println(source.replaceAll("(?:/\\*(?:[^*]|(?:\\*+[^*/]))*\\*+/)|(?://.*)",""));    

    }    


    static String readFile(String fileName) {    

        File file = new File(fileName);    

        char[] buffer = null;    

        try {    
                BufferedReader bufferedReader = new BufferedReader( new FileReader(file));    

                buffer = new char[(int)file.length()];    

                int i = 0;    
                int c = bufferedReader.read();    

                while (c != -1) {    
                    buffer[i++] = (char)c;    
                    c = bufferedReader.read();    
                }    

        } catch (IOException e) {    
            e.printStackTrace();    
        }    

        return new String(buffer);    
    }    

}    
Run Code Online (Sandbox Code Playgroud)

  • 谢谢Bastiano9 ..但是这段代码也删除了这段代码.字符串notAComment ="//这不是评论"; (3认同)