本人想对某个文本进行关键字过滤,对于关键字在同一行是很好进行过滤的,但是关键字处于不同的行,该怎么处理的。
PS:过滤的同时,我还想打印出检测到的关键字所处的行数,谢谢!

解决方案 »

  1.   

    如果不考虑效率楼主可以试下以下思路
    1、记录每行的字符总数
    2、将文本全部读取出来剔除换行字符
    3、通过JAVA正则表达式找出匹配字符串的起始位置
    4、通过和1的数据对比得出相应的行数
    我觉得是可行的
      

  2.   

    To zyz1985:
    每行的字符总数不一定相同的,我个人觉得算出来的行数是不是不太精确!
      

  3.   

    for example
    String s = ...;
    String[] sa = s.split(System.getProperty(line.separator));
    for (int i=0; i<sa.length; i++) {
        if (sa[i].contains(keyword)) { //or sa[i].indexOf(keyword) >= 0
            System.out.printf("line:%d contains %s\n", i+1, keyword);
        }
    }
      

  4.   

    谢谢楼上给出的code!
    不过你写得code只是在关键字处于同一行的情况!
    有没有判断处于不同行的情况呢!而且还要打印出行数!