比如有一个test.txt文件,内容为:
//aaaaaaaaaaaaa
a1
a2
//ccccccc
//ddddd
d1
d2
//获取session变量userid值
int userid = Integer.parseInt(session.getAttribute("userid").toString());
String act = null;//获取act行为参数
act = request.getParameter("act");
String msg = null;
        String tit
这里是正文 123456789我想过滤掉带"//"的内容,并且空格也要过滤掉. 求讲解或源代码
如下:
比如有一个some.txt文件,内容为:
a1
a2
d1
d2
int userid = Integer.parseInt(session.getAttribute("userid").toString());
String act = null;
act = request.getParameter("act");
String msg = null;
String tit
这里是正文 123456789

解决方案 »

  1.   

    //过滤掉简单,问题是你将空格过滤掉,得到的东西不是挤在一起了么,有啥用?
    原来int a=10; 现在变成inta=10,你是这个意思?
      

  2.   

    readLine得到一个String用正则replaceAll(),看看注释的特征过滤掉
      

  3.   

    不是这个意思,我的意思是在  java程序中,有一段Java代码的方法上面有中文注释,但是我在读取的时候要把中文注释给过滤掉.比如:
    //注册信息提交处理函数
    function onRegisterSubmit(){
    //错误信息汇总
    var strErr = "";
    //检查用户名user
    var strLogname = document.getElementById("user").value;
    if(strLogname == ""){
    strErr = "账号";
    }else{
    //将正则表达式赋值给变量lognameReg
    var lognameReg = /([_a-zA-Z\d\-\_\.\@\#]){3}/;
    //用取得的登陆名和正则表达式进行匹配
    if(!lognameReg.test(strLogname)){
    strErr = "账号";
    document.getElementById("user").focus();
    }
    }
    我想要的结果是
    function onRegisterSubmit(){
    var strErr = "";
    var strLogname = document.getElementById("user").value;
    if(strLogname == ""){
    strErr = "账号";
    }else{
    var lognameReg = /([_a-zA-Z\d\-\_\.\@\#]){3}/;
    if(!lognameReg.test(strLogname)){
    strErr = "账号";
    document.getElementById("user").focus();
    }
    }
    谢谢.
      

  4.   

    如果注释全是以"//"开头,可以这样做,比正则简单。if(str.startsWith("//")){
        str="";
    }
      

  5.   

    for example
    BufferedReader reader = new BufferedReader(new FileReader("test.txt"));
    PrintStream writer = new PrintStream(new FileOutputStream("test_new.txt"));
    String buf;
    while ((buf=reader.readLine()) != null) {
        if (buf.isEmpty()) {continue;}
        if (buf.matches("[/]+.*")) {
            buf = buf.replaceAll("[/]+(.*)", "$1"); //去掉前面的/
        }
        buf = buf.replaceAll("\\s+(.*)", $1); //去掉前面的空格
        writer.println(buf);
    }
    reader.close();
    writer.flush();
    writer.close();
      

  6.   

        if (buf.isEmpty()) {continue;}
        buf = buf.replaceAll("^\\s*([^\\s]*)", "$1"); //这样可能保险一些,防止注释的前面有空格
        if (buf.matches("^[/]+.*")) {
            buf = buf.replaceAll("^[/]+(.*)", "$1"); //去掉前面的/
        }
        buf = buf.replaceAll("^\\s*([^\\s]*)", "$1"); //去掉前面的空格
      

  7.   


    import java.io.*;
    public class TestFilter {
        public static String read(String filename) throws IOException {
    BufferedReader br = new BufferedReader(new FileReader(filename));
    String s;
    StringBuffer sb = new StringBuffer();
    while ((s = br.readLine()) != null) {       
        s = s.replaceAll("//.*","");     
        sb.append(s + "\n");
    }
    br.close();
    return sb.toString();
        }
        public static void main(String[] args) throws IOException {  
            String sourceString = read(getFileName(TestFilter.class));//将本文件用sourceString保存
    System.out.println(sourceString);// 注释文字不应该被打印出来;
        }// 注释文字不应该被打印出来;
     // 注释文字不应该被打印出来;
        static <T> String getFileName(Class<T> c) {//获得当前文件*.java的文件路径和文件名
    return "./src/" + c.getSimpleName() + ".java";// 注释文字不应该被打印出来;
        }
    }结果:
    import java.io.*;
    public class TestFilter {
        public static String read(String filename) throws IOException {
    BufferedReader br = new BufferedReader(new FileReader(filename));
    String s;
    StringBuffer sb = new StringBuffer();
    while ((s = br.readLine()) != null) {       
        s = s.replaceAll("
        sb.append(s + "\n");
    }
    br.close();
    return sb.toString();
        }
        public static void main(String[] args) throws IOException {  
            String sourceString = read(getFileName(TestFilter.class));
    System.out.println(sourceString);
        }
     
        static <T> String getFileName(Class<T> c) {
    return "./src/" + c.getSimpleName() + ".java";
        }
    }
      

  8.   

    为什么 同样的方法过滤不了这个 <%--aaaaaaaaa--%>?
      

  9.   

    readLine截取前两位,如果是 "//",则读取下一行
      

  10.   

    能过滤 <%--aaaaaaaaa--%>才怪,你不会稍微改一下代码?