求助,java对文本进行关键字过滤的问题 本人想对某个文本进行关键字过滤,对于关键字在同一行是很好进行过滤的,但是关键字处于不同的行,该怎么处理的。PS:过滤的同时,我还想打印出检测到的关键字所处的行数,谢谢! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 如果不考虑效率楼主可以试下以下思路1、记录每行的字符总数2、将文本全部读取出来剔除换行字符3、通过JAVA正则表达式找出匹配字符串的起始位置4、通过和1的数据对比得出相应的行数我觉得是可行的 To zyz1985:每行的字符总数不一定相同的,我个人觉得算出来的行数是不是不太精确! for exampleString 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); }} 谢谢楼上给出的code!不过你写得code只是在关键字处于同一行的情况!有没有判断处于不同行的情况呢!而且还要打印出行数! 请问怎么将 java中 嵌入数据库? 关于Queue的问题 要通过一个事件关闭当前的对话框该用那个语句啊! 如何获得字符串的编码格式 Swing刷新界面(第一个能用者单独追加100分给他) Java如何截包?? 笔试题 如何定义一个返回值为字符串类型的方法??? 如何实现用户操作数据库时 锁定他人不能操作? 关于招聘面试 java疑问 cs流程
1、记录每行的字符总数
2、将文本全部读取出来剔除换行字符
3、通过JAVA正则表达式找出匹配字符串的起始位置
4、通过和1的数据对比得出相应的行数
我觉得是可行的
每行的字符总数不一定相同的,我个人觉得算出来的行数是不是不太精确!
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);
}
}
不过你写得code只是在关键字处于同一行的情况!
有没有判断处于不同行的情况呢!而且还要打印出行数!