如何检查字符串是单词?

时间:2017-08-16 17:07:29

标签: java android

新手程序员在这里。

我的意思是“苹果”是一个词,但“opple”不是。

所以我想创建一个非常简单的应用程序,检查用户输入的内容是否为单词。

是否有可以导入的小部件或其他内容来执行此操作?

我没有看到任何关于此的文档,但我知道手机内置了拼写检查,所以我可以使用一些帮助。

3 个答案:

答案 0 :(得分:0)

为了检查字符串中是否有单个字,我会查找空格:

if (str != null && !str.trim().isEmpty() && str.trim().indexOf(' ') == -1) {
    // it's a single word
}

答案 1 :(得分:0)

可能有很多方法可以做到这一点,但有一种方法是你基本上需要在项目的根目录中有一个单词列表。之后,您使用代码检查String是否是您在根目录中的单词列表的一部分。

如果您使用的是java,可以按照

进行操作



import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.Collections;
import java.util.HashSet;
import java.util.Set;

public class Dictionary
{
    private Set<String> wordsSet;

    public Dictionary() throws IOException
    {
        Path path = Paths.get("words.txt");
        byte[] readBytes = Files.readAllBytes(path);
        String wordListContents = new String(readBytes, "UTF-8");
        String[] words = wordListContents.split("\n");
        wordsSet = new HashSet<>();
        Collections.addAll(wordsSet, words);
    }

    public boolean contains(String word)
    {
        return wordsSet.contains(word);
    }
}
&#13;
&#13;
&#13;

`

答案 2 :(得分:0)

我假设您在这里指的是英语,如果您想创建像jaazy或google拼写检查API这样的字典结构,可以使用多个库。

虽然如果你不想要所有语言单词并且只有一小组你自己的单词......那么

//使用hashSet将其保持为静态并加载hashSet中的所有单词 //然后,当输入一个单词时,只需使用hashSet.contains()函数来获取该元素是否存在于hashSet中,或者不是[o(1)operation]。 //你的方法可以返回包含方法返回的内容。

如果您需要更多详细信息,请与我们联系。

-Sami