【问题标题】:How to check If a string is a word? [duplicate]如何检查字符串是否为单词? [复制]
【发布时间】:2017-08-16 17:07:29
【问题描述】:

这里是新手程序员。

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

所以我想制作一个非常简单的应用程序来检查用户输入的内容是不是一个单词。

是否有一个小部件或我可以导入的东西来做到这一点?

我还没有看到任何有关这方面的文档,但我知道拼写检查已内置于手机中,因此我可以寻求帮助。

【问题讨论】:

  • 定义“单词”。恰恰。一旦你有了定义,你就几乎有了实现。
  • Android API 我对 API 不是很熟悉,所以我无法按说法写出答案,但这应该是您想要的。

标签: java android


【解决方案1】:

可能有很多方法可以做到这一点,但一种方法是您基本上需要在项目的根目录中有一个单词列表。之后,您使用您的代码检查 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);
    }
}

`

【讨论】:

  • Android 有一个可以利用的拼写检查服务,所以单词列表是多余的。
【解决方案2】:

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

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

【讨论】:

  • 这没有回答问题。它只是测试一个字符串是否为非空且不包含空格字符。
  • 这个问题以前不清楚 - OP 编辑​​澄清他问的是拼写检查
  • 应该等待澄清,因为原始 Q 中没有任何内容建议“检测字符串是否是没有空格的单个字符字符串”。
【解决方案3】:

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

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

//使用hashSet保持静态并加载hashSet中的所有单词 //然后键入一个单词,只需使用 hashSet.contains() 函数来获取该元素是否存在于 hashSet [o(1) 操作]。 //你的方法可以返回任何包含方法返回的内容。

如果您需要更多详细信息,请告诉我。

-萨米人

【讨论】:

    猜你喜欢
    • 2016-11-06
    • 1970-01-01
    • 1970-01-01
    • 2012-12-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-23
    • 2019-01-25
    相关资源
    最近更新 更多