我可以弄清楚如何创建字符串的字谜,但我不知道如何将它们与真实单词字典进行比较以检查字谜是否是真实单词。Java API 中是否有包含整个英语词典的类?
问问题
5860 次
5 回答
5
不,但你可以从不同的地方得到一个单词表。从那里,您可以将 wordlist 文件读入列表:
List<String> lines = new ArrayList<String>();
BufferedReader in = new BufferedReader(new FileReader("wordlist.txt"));
String line = null;
while (null!=(line=in.readLine()))
{
lines.add(line);
}
in.close();
最后二进制搜索用于lines.contains()
您的候选词。
于 2010-04-24T17:54:53.113 回答
2
确定一组字符是否是单词的字谜的一种方法涉及使用素数。为每个字母分配一个质数,例如,a=2、b=3、c=5、d=7。现在为字典中的每个单词预先计算素数的乘积。例如,'add' = 2*7*7 = 98,或'bad' = 3*2*7 = 42。
现在可以通过计算一组字母的值来确定一组字母是否是字典中任何单词的字谜。例如,字母 'abd'= 2*3*7 = 42 = 'bad'。只需检查字母的计算值是否存在于您的预先计算的字典中。对于任何字谜,您只需要执行一次此计算,而不是尝试生成每个可能的字谜。但是请注意,此方法仅适用于相对较小的单词,否则您将遇到溢出问题并需要使用 BigInteger。
于 2010-04-24T20:11:57.840 回答
1
不,您必须使用外部库,例如JWNL,它是 WordNet 的包装器 -一个按含义组织的机器可读词汇数据库,几乎包含所有英语单词。
于 2010-04-24T17:52:12.943 回答
1
也许爵士的英语词典可以帮助你。
于 2010-04-24T17:54:06.677 回答