Android-检查有效的英语单词

Android-检查有效的英语单词,android,dictionary,Android,Dictionary,有效词:牛津词典中的词。假设 我想验证用户形成的单词是否有效。我希望有一本字典是一个好的选择。我同意使用拼写检查是错误的选择 我阅读)。答案是建议将字典加载到sqlite中。我可能误解了这一点。如果我将单词列表加载到sqlite中,可能会遗漏一些单词 所以我的问题是 是否有任何android内置类提供单词列表。我认为我不能使用Android的用户字典 或 有没有办法将整个字典加载到SQLite 或 如果我错了,你能给我建议一个最好的选择吗 您可以使用以下类似内容: public class Di

有效词:牛津词典中的词。假设

我想验证用户形成的单词是否有效。我希望有一本字典是一个好的选择。我同意使用拼写检查是错误的选择

我阅读)。答案是建议将字典加载到sqlite中。我可能误解了这一点。如果我将单词列表加载到sqlite中,可能会遗漏一些单词

所以我的问题是

  • 是否有任何android内置类提供单词列表。我认为我不能使用Android的用户字典
  • 有没有办法将整个字典加载到SQLite
  • 如果我错了,你能给我建议一个最好的选择吗

  • 您可以使用以下类似内容:

    public class Dictionary
    {
     private Set<String> wordsSet;
    
     public Dictionary() throws IOException    //read the file in the constructor
      {
        Path path = Paths.get("file.txt");  //path of the file in root directory
        byte[] readBytes = Files.readAllBytes(path);
        String wordListContents = new String(readBytes, "UTF-8");
        String[] words = wordListContents.split("\n"); //the text file should contain one word in one line
        wordsSet = new HashSet<>();
        Collections.addAll(wordsSet, words);
      }
    
      public boolean contains(String word)
      {
        return wordsSet.contains(word);   //check if it exists
      }
    }
    
    公共类字典
    {
    私有集合词集;
    public Dictionary()抛出IOException//读取构造函数中的文件
    {
    Path Path=Path.get(“file.txt”);//根目录中文件的路径
    byte[]readBytes=Files.readAllBytes(路径);
    String wordListContents=新字符串(readBytes,“UTF-8”);
    String[]words=wordListContents.split(“\n”);//文本文件应在一行中包含一个单词
    wordsSet=newhashset();
    Collections.addAll(wordsSet,words);
    }
    公共布尔包含(字符串字)
    {
    返回单词set.contains(word);//检查它是否存在
    }
    }
    
    当涉及到其他选项时,您可以尝试使用牛津字典API检查特定单词:


    有检查单词存在性的方法。

    U的意思是我应该有一个有效单词的文件。它的大小可能是GB。这不会影响性能吗?下面是这样一个文件的链接:,它包含大约350000个字,但大小仍然在4.64MB左右。因此,是的,这不会影响性能。一个更好的解决方案是调用@Bartosz提到的API,但是如果你想要一个本地解决方案,那么这个(上面提到的)就是解决方案。有多种方案可供选择。你可以在字典的底部检查它们,也有一个免费版本。还有一个方法可以检索所选字典中的单词列表。您可以编写一个简单的代码,通过指定每个请求的限制和偏移量来获取整个列表,并将它们放入本地数据库中。您可能需要获得一些许可才能这样做,因为我不认为它是用来这样做的。