我的收获:
写正则的时候先找个正则匹配工具测试。
代码:
package com.allcheer.acl.omc.util.tool; import org.apache.commons.io.IOUtils; import java.io.File; import java.io.FileInputStream; import java.io.FileReader; import java.io.FileWriter; /** * Created by Administrator on 2016/12/12. * 将DO变成Model且去除注释 */ public class Do2ModelNoDoc { public static File transFile(File src){ String targetFileName; String contentString; String name=src.getName(); targetFileName=name.replace("DO.","Model."); File target=new File(src.getParentFile(),targetFileName); FileReader fis=null; FileWriter fw=null; try { target.createNewFile(); fw=new FileWriter(target); contentString=IOUtils.toString(new FileInputStream(src)); contentString=contentString.replaceAll("/\*(.|\s)*?\*/",""); contentString=contentString.replace(src.getName().replace(".java",""),targetFileName.replace(".java","")); fw.write(contentString); fw.flush(); }catch (Exception e){ e.printStackTrace(); }finally{ try{ if(fis!=null) fis.close(); if(fw!=null) fw.close(); }catch(Exception e){ e.printStackTrace(); } } return target; } }
代码存在bug,就是如果System.out.println("/** uugfgug **/");会被匹配
我想的更改成的正则:[^'"]/*(.|s)*?*/[^'"]
但是有问题,没时间,上班,希望会的帮忙写个正确的正确