关于字符串查找,哪种方法更快?

daosh 2005-03-18 04:52:41
有一个文本,里面保存了很多字符串,里面每个字符串自成一行,整个文本近万行
现在要对大量字符串(不是上面文本中读出来的)进行查找,查找它是否存在于上面的文本中
我想到两个方法:
方法1,查找每个字符串都读取文本,然后进行字符串比较(str1==str2)
方法2,将文本中的字符串先存入数据库某个表中,每次查的时候入库查询,看是否有匹配的结果
请问这两种方法哪种好点?你是否有更好的思路提供给我呢?
...全文
170 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
速马 2005-03-20
  • 打赏
  • 举报
回复
用数据库应该是最方便的方法
不然的话,你最好为这个文本文件自己维护索引,最好随时保持排序了的状态,然后使用二分查找算法匹配

何必自己折腾呢,数据库在这方面是强项
hawk234 2005-03-20
  • 打赏
  • 举报
回复
uuppp
daosh 2005-03-20
  • 打赏
  • 举报
回复
有人建议读进内存,放到hash表中,查询方便
觉得这个都挺好
greennetboy 2005-03-18
  • 打赏
  • 举报
回复
肯定用正则表达式亚
yxiaoxiong 2005-03-18
  • 打赏
  • 举报
回复
如果查询次数不多,可以考虑读到内存后操作
反之放入数据库后进行处理效果更佳
ajieboy 2005-03-18
  • 打赏
  • 举报
回复
用正则表达式
hgamezoom 2005-03-18
  • 打赏
  • 举报
回复
似乎是数据库的效率更高些。可以用like。
读取大量txt文本文件的内存消耗非常之大,更不要说要用模糊查找了。
daosh 2005-03-18
  • 打赏
  • 举报
回复
先感谢楼上两位:)
to micropentium6:因为这个应用是建立在c#的基础之上...我说的第一种方法本意是将文本内容预先读到内存,那就是一大块string了,在里面查找字符串也有现成的方法,就是觉得这样会不会太“巨大”了?
  • 打赏
  • 举报
回复
第一种方法自己写无法保证肯定的效率,也没有必要自己再去造车轮;第二种方法像是搞网页的朋友的做法,啥都离不开数据库,写这么个东西也必须windows企业版+sqlserver(如果大哥用php+mysql,我就拜他为师:)

可以考虑一下正则表达式吗?你知道吗?上次在北京站遇到一个研究生是做生物的,他告诉我:他们所有的dna序列查找都使用perl+regular expression,不知道楼主的情况能不能用?
leonchenjian 2005-03-18
  • 打赏
  • 举报
回复
我的想法是先将字符串排序,然后再用折半查找法查找。

110,572

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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