Android-检查有效的英语单词
有效词:牛津词典中的词。假设 我想验证用户形成的单词是否有效。我希望有一本字典是一个好的选择。我同意使用拼写检查是错误的选择 我阅读)。答案是建议将字典加载到sqlite中。我可能误解了这一点。如果我将单词列表加载到sqlite中,可能会遗漏一些单词 所以我的问题是Android-检查有效的英语单词,android,dictionary,Android,Dictionary,有效词:牛津词典中的词。假设 我想验证用户形成的单词是否有效。我希望有一本字典是一个好的选择。我同意使用拼写检查是错误的选择 我阅读)。答案是建议将字典加载到sqlite中。我可能误解了这一点。如果我将单词列表加载到sqlite中,可能会遗漏一些单词 所以我的问题是 是否有任何android内置类提供单词列表。我认为我不能使用Android的用户字典 或 有没有办法将整个字典加载到SQLite 或 如果我错了,你能给我建议一个最好的选择吗 您可以使用以下类似内容: public class Di
您可以使用以下类似内容:
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,但是如果你想要一个本地解决方案,那么这个(上面提到的)就是解决方案。有多种方案可供选择。你可以在字典的底部检查它们,也有一个免费版本。还有一个方法可以检索所选字典中的单词列表。您可以编写一个简单的代码,通过指定每个请求的限制和偏移量来获取整个列表,并将它们放入本地数据库中。您可能需要获得一些许可才能这样做,因为我不认为它是用来这样做的。