检查数组中的内容是否为单词

时间:2012-01-23 14:34:24

标签: java string word

以下是我在数组中的内容......

myArray = {"about","name","dsafasdf","fix"};

我想找到这个数组中的英文单词。

下面应输出:

Words found are as below
about
name
fix

提前致谢!!!

任何示例或链接都可以使用!!!

其实我想实施 TextTwist Game 。我找到了可能的单词,但是我想检查发现的字符串是否是WORD / Grammar ...

更新1

请不要建议我创建一个文件并在其中添加单词然后在此文件中搜索单词...这将是最糟糕的程序....

6 个答案:

答案 0 :(得分:2)

你需要一个包含所有英文单词的图书馆。你必须检查每一个字 this是一个类似的问题。如果你不想使用java库,你应该找到一个包含所有单词或类似内容的文本文件,并编写自己的方法来查找单词。请注意,您的文本文件应该排序,以便您可以使用divide and conquer算法找到单词。否则搜索将花费很长时间 修改
你还必须记住,名字不是@amit所说的“英语单词”。他们可以在文本中到处见面。你应该检查单词是否以大写字母开头,而不是在句子的开头。

答案 1 :(得分:1)

您需要阅读英语库文件并进行检查。可以在此处找到此类文件的示例:http://wordlist.sourceforge.net/

答案 2 :(得分:1)

我没有使用其他答案中建议的静态词汇集合,而是使用更具动态性的内容 - 网络

一个好的启发式方法可能是 - 搜索您正在寻找的单词是否出现在维基百科中的文章标题中,如果有,则接受它!

请注意,优势是动态增长的单词“列表”,而无需将它们存储在字典中。

缺点:缓慢的IO [持续的互联网使用],并且列表尚未填满[某些术语不会出现,即使在维基百科中也是如此]。它还要求用户在线使用这种方法。

请查看wikipedia API以了解如何操作。

您可以使用的另一个在线信息来源是Bing Search API [这是免费的!虽然最近有一些问题...]

答案 3 :(得分:0)

首先:定义英语单词词典 然后:将所有这些世界放在Collection中 最后:对于数组中的每个单词,检查它是否在英语单词集合中。

这不是过分高效,但它应该起到作用:

String[] englishWords = new String[]{"a", "all", "an",...};
Collection<String> dictionary = Arrays.asList(englishWords);
for (String candidate : myArray){
  if (dictionary.contains(candidate)){
    System.out.println(candidate);
  }
}

答案 4 :(得分:0)

您可以在字典中查找,也可以使用特定的库:查看How to check if a word is an English word with Python?

答案 5 :(得分:0)

我自己在java中实现了一个TextTwist版本,我发现从字典文本文件读入一组字符串的工作效果很好。

这是我的代码,一个Java Eclipse项目,以防您感兴趣。请注意,我使用多人游戏功能实现了它,因此代码在客户端/服务器之间分开。 https://github.com/fangsterr/Multiplayer-Text-Twist