2 elysion k elysion_k 于 2015.07.22 17:38 提问

java在多个字符串里匹配

每当我得到一个字符串我要和5000多个字符串去匹配寻找相同的,
可以把5000多个字符串做成文件在java里通过流读取匹配吗,或者有更好的方法吗,

6个回答

caozhy
caozhy   Ds   Rxr 2015.07.22 19:08

最好的办法是做倒排索引,搜索引擎的全文搜索就是这么实现的。

baidu_28379135
baidu_28379135 好吧……那我给个赞。顺便总结一下三个方法是“倒排索引”、“Trie树”、“Hash”。如果字符串较短推荐Hash分组,如果长推荐“Trie”数,如果我理解错了请用List<String>然后equals。
2 年多之前 回复
caozhy
caozhy 回复baidu_28379135: 我没激动啊。电话本找电话应该用hash,你看,lz一个问题竟然给你讨论出3个。
2 年多之前 回复
baidu_28379135
baidu_28379135 请勿激动。我不是针对这个回答,只是觉得那2个赞的人“你们在想什么啊!!”毕竟回答的人是当局者,对题目有不同的理解是正常的。另一方面,我觉得lz的意思是类似在电话本里找电话。
2 年多之前 回复
caozhy
caozhy http://blog.csdn.net/jiutianhe/article/details/8076835
2 年多之前 回复
caozhy
caozhy 回复baidu_28379135: http://blog.csdn.net/arhaiyun/article/details/11913501
2 年多之前 回复
caozhy
caozhy 回复baidu_28379135: lz提问不明确,如果是全文索引,就用倒排,如果是做拼写检查或者敏感词过滤,就用字典树
2 年多之前 回复
baidu_28379135
baidu_28379135 看我定体问:“看到字符串、匹配、寻找这种词就要说‘倒排’一定是体制的问题”。人家是匹配字符串不是在长字符串里找词语……如果是全文索引,那1个和5000个有什么区别?
2 年多之前 回复
caozhy
caozhy   Ds   Rxr 2015.07.22 19:09
yuke198907
yuke198907   2015.07.22 17:49

可以放到文件中;
也可以把5000个字符串放到数据库中,然后判断是否存在数据库里

oyljerry
oyljerry   Ds   Rxr 2015.07.22 18:27

5000个字符串这点数据量不大,可以直接放内存中,比如用一个list等。然后每次有一个字符串就去查找
还可以对字符串放hashtable,这样可以直接比较hash来查找,效率更好

tongyi55555
tongyi55555   2015.07.22 22:13

看你这5000个原来在哪里了。如果是系统生成的,还是不要存到文档里了,读写很费时间,不如放到一个list或者map中。

CSDNXIAON
CSDNXIAON   2015.07.23 15:10

java 字符串模糊匹配
java字符串模糊匹配
----------------------同志你好,我是CSDN问答机器人小N,奉组织之命为你提供参考答案,编程尚未成功,同志仍需努力!

Csdn user default icon
上传中...
上传图片
插入图片