在android中的单词列表文本文件中搜索单词

时间:2013-03-27 15:52:31

标签: java search file-io word

朋友我有一个单词列表,按字母顺序排列在文本文件(2MB)中,包含300,000个单词(每行1个单词)。由于它已经排序,我想做一个快速的字符串搜索,必须准确,不区分大小写。任何想法如何做到这一点?

要尽快使用并且不区分大小写。例如,

如果用户需要从文本文件中搜索单词“MAT”,则输出必须是mat / MAT,不应包括mate,matted或任何此类单词。输出应该在最短的时间内生成。

编辑 - 我需要类似于类或算法的解决方案,如Pattern / matcher或BufferedReader / Scanner等。

2 个答案:

答案 0 :(得分:1)

如果您的单词列表已经排序,我能想到的最快的方法就是使用binary search。对于区分大小写的部分,只需在每个字符串上应用ToUpper()或ToLower()(输入一个,并在文件中进行比较)并解决问题。

虽然我同意其他人的观点,但你应该只使用一个数据库。

答案 1 :(得分:0)

您最好的方法可能是将其正确存储到数据库中,这样您就必须搜索最少量的数据。

每个字母表中的一个表格,只有以该字母开头的单词。 基本上已经将搜索量削减到300,000 / 20(26 - 减少一些罕见的字母)。

这可能已经做了300,000个单词,但如果没有,你甚至可以进一步做出一些长度分离。

将所有单词保存到数据库中可能需要一段时间,但这对您的应用可能不是问题。

相关问题