如何java搜索关键字,将其周围指定的几行输出

scorpio_lhl 2010-01-13 07:58:13
请教各位:

用java搜索一个文本文件中关键字(keyword),然后把keyword所在行的上下几行(要可以指定)输出到文件.

类似文本如下:

....

谢谢大家(((((())))))
wuisdsajdlsiwueuwewqoeopofdsajfhdjsafjka
fsadlsaf;klfdlkeyword搜索这段代码,输出上下相关几行
no1. fdsafdslfkdjksfajldksjafk
no2. fd;skfajl;dksafl;dskaf
no3. fdsafdsafdlksfjaldlsa;f
.....

--------------------------------------------------------------------------

谢谢大家(((((())))))

wuisdsajdlsiwueuwewqoeopofdsajfhdjsafjka
fsadlsaf;klfdlkeyword搜索这段代码,输出上下相关几行
no1. fdsafdslfkdjksfajldksjafk
no2. fd;skfajl;dksafl;dskaf
no3. fdsafdsafdlksfjaldlsa;f

.....

--------------------------------------------------------------------------


谢谢!
...全文
378 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
SambaGao 2010-01-14
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 sotom 的回复:]
如果要做的专业点就用 luncene 吧, 搜索引擎。做简单的搜索不难。

需要的话加我好友  我给你例子。
[/Quote]

...
苍蝇①号 2010-01-14
  • 打赏
  • 举报
回复
最简单的做法就是使用luncene了,
或者还有一个更执白的方式就是用百度,
当然用关系数据库中的全文索引也可以
别的方法就只能用串匹配了,一行一行的匹配
  • 打赏
  • 举报
回复
luncene 貌似很火
阿士匹灵 2010-01-14
  • 打赏
  • 举报
回复
学习
ofacop 2010-01-14
  • 打赏
  • 举报
回复
关注,帮顶起!
sotom 2010-01-14
  • 打赏
  • 举报
回复
如果要做的专业点就用 luncene 吧, 搜索引擎。做简单的搜索不难。

需要的话加我好友 我给你例子。
j2meme 2010-01-14
  • 打赏
  • 举报
回复
关注,学习
Aniao 2010-01-14
  • 打赏
  • 举报
回复
看你要不要效率,如果要效率的话建议还要使用trie tree
duannianping 2010-01-13
  • 打赏
  • 举报
回复
import java.util.Date;
import java.io.*;
import java.util.regex.*;
import java.util.*;
public class Str{
public static void main(String arg[])
{

List<String> strList=new ArrayList();//定义一个List存储读取的文本内容
List<Integer> flags=new ArrayList();//定义一个List存储keyword出现的行
Pattern p=Pattern.compile("keyword");//调用Pattern的compile方法编译要匹配的正则
Matcher m;
int i=0;
try{
Reader re=new FileReader(new File("E:/test.txt"));
BufferedReader bre=new BufferedReader(re);
while(bre.ready())
{
String str=bre.readLine();
strList.add(str);
m=p.matcher(str);
if(m.find())//查找正则匹配的子串是否存在
{
flags.add(i);//记录匹配的行
System.out.println("hello world !");
}
i++;
}
for(int k=0;k<flags.size();k++)
{
//干你想干的事
System.out.println(strList.get(flags.get(k)));
}
}catch(Exception e)
{
System.out.println(e.toString());
}
}

}
好好学习,天天向上

62,612

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧