2016-04-03 195 views
0

我需要在文件刪除評論,如:刪除評論的Java

/* this*/ 
/*this 
* 
* 
*/ 
//And this 

並寫入到另一個文件。 我用這個表達式:

public String delComments(String input){ 
     String noComments = input.replaceAll("//.*|(\"(?:\\\\[^\"]|\\\\\"|.)*?\")|(?s)/\\*.*?\\*/", "$1 "); 
     return noComments; 

和方法的閱讀

String line = null; 
    FileReader fileReader = 
      new FileReader(filePath); 
    BufferedReader bufferedReader = 
      new BufferedReader(fileReader); 
    FileWriter fw = new FileWriter(filePathNoComm); 
    BufferedWriter bw = new BufferedWriter(fw); 
    while((line = bufferedReader.readLine()) != null) { 
     delComments(line); 
     bw.write(line); 
    } 
    bw.close(); 

,但它不工作。 我做錯了什麼?

+1

請詳細說明「它不工作」,也不要忘了,包括您的一步一步的調試觀察。 –

+0

新的文本文件留下評論,這就是我的意思 –

+0

你忘了包括你的分步調試觀察。 –

回答

0

嘗試下面的代碼片段:

public static String delComments(String content){ 
    Pattern regex = Pattern.compile("/\\*.*?\\*/|/{2,}[^\\n]*", Pattern.DOTALL); 

    Matcher matcher = regex.matcher(content); 
    return matcher.replaceAll(""); 
} 

應該刪除所有留言。

我有樣本輸入文件:

package com.company; 

/** 
* Created by XXX on 4/3/16. 
*/ 

public class Test { 
    // Will fix it later 

    int x = 0; // declaration. 
} 

得到清理後,它會發出:

package com.company; 


public class Test { 


    int x = 0; 
}