一个包含所有英语单词的Java数组?(或具有相同效果的东西)



基本上,我正在编写一个程序,将对数组中的每个单词运行相同的代码。我做了一个大约50个单词的数组来尝试一下,效果很好。有人知道如何将英语中的所有单词(或至少相当大量的单词,如Dictionary的内容)放入Java数组吗?

提前感谢任何回复!

在linux上可以这样做。里面有很多我不确定是不是英语的单词。

BufferedReader br = new BufferedReader("/usr/share/dict/words");
Set<String> words = new LinkedHashSet();
String line;
while((line = br.readLine()) != null) words.add(line);
br.close();

除了作为保存字典数据的低效数据结构之外,数组可以保存重复项。那么,如果要向数组中添加单词,您确定没有添加重复项吗?..如果您要检查重复,则会增加另一层代码复杂性,从而增加运行时/算法复杂性并降低性能。

这个问题很好,有两种方法:

  1. 打开字典,把每个该死的单词都打出来!
  2. 编写一个程序,从用户接收一个单词,并将其分类后存储到数组中。

这两个方法都很繁琐,但至少对于第二个方法,您不必自己做所有的事情:)

在数组中有大量的"words"将是非常低效的。但是如果你的目的只是试验,你可以

  • 在文本文件中复制大量文本。
  • 将该文本文件的内容读入字符串
  • 标记/分割空格上的字符串内容

source forge上的Word List项目有一堆你可以使用的列表

你在评论中说

这不是一个关于单词是什么的问题(它不是一个写故事的程序)例如,我只需要大量的单词

它们必须是单词吗,或者你可以使用随机生成的字母和/或数字的组合来代替?您还没有明确您的真正目标—如果您只是想尝试IO和数组,那么您不需要真实的数据。

最新更新