有没有我可以下载java的字典?

Dav*_*vid 4 java

有没有我可以下载java的字典?我希望有一个程序,它需要一些随机字母,看看是否可以通过检查字典将它们重新排列成真正的单词

Syn*_*r0r 8

有可以下载java的字典吗?

其他人已经回答了这个问题......也许你不只是在谈论一个字典文件而是关于一个拼写检查器?

我希望有一个程序,它需要一些随机字母,并通过检查它们是否可以重新排列成一个真正的单词

那是不同的.你想要多快这么快?字典中有多少单词,有多少单词,你要检查多长?

如果你想要一个拼写检查器(你的问题并不完全清楚),Jazzy是一个Java拼写检查程序,可以链接到很多字典.这还不错,但是各种实现都非常低效(对于小字典来说这是好的,但是当你有几十万个单词时,这是一个惊人的浪费).

现在,如果您只是想解决您描述的具体问题,您可以:

  • 解析字典文件并创建地图:( 按排序顺序排列的字母,匹配单词的集合)

  • 那么对于任意数量的随机字母:对它们进行排序,看看你是否在地图中有一个条目(如果你输入的值包含你可以用这些字母做的所有单词).

    abracadabra:(aaaaabbcdrr,(abracadabra))

    carthorse :( acehorrst,(carthorse))

    管弦乐队:( acehorrst,(carthorse,orchestra))

等等...

现在你拿三个随机字母并获得"hsotrerca",你将它们排序为"acehorrst",并用它作为关键,你得到所有(有效的)字谜......

这是有效的,因为你所描述的是一个特殊的(简单)案例:你需要的只是对你的字母进行排序,然后使用O(1)地图查找.

为了进行更复杂的拼写检查,可能存在错误,那么你需要一些东西来提出"候选人"(可能是正确但拼错的词)[比如说,使用soundex,metaphone或双metaphone algos]和然后使用诸如Levenhstein编辑距离算法之类的东西来检查候选人与已知的好词(或者由Levenhstein编辑距离组成的更复杂的树,Google将其用于"在您键入时查找"):

http://en.wikipedia.org/wiki/Levenshtein_distance

作为一个有趣的旁注,优化的字典表示可以存储数百甚至数百万字,每个字不到10比特(是的,你已经正确读过:每个字少于10比特)并且允许非常快速的查找.