如何检查字符串是否为单词?

如何检查字符串是否为单词?

问题描述:

这里是菜鸟程序员。如何检查字符串是否为单词?

By word我的意思是像“苹果”是一个字,但“opple”不是。

所以我想做一个非常简单的应用程序,检查用户输入的是一个字还是不是。

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

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

+5

定义“单词”。恰恰。一旦你有了定义,你几乎可以实现。 –

+3

[Android API](https://developer.android.com/guide/topics/text/spell-checker-framework.html)我对API不是很熟悉,所以我不能写每个答案的答案,但这应该是你想要的。 – drelliot

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

`

+0

Android有一个拼写检查服务,您可以利用,所以一个单词列表是矫枉过正。 – jdv

为了检查,如果有一个字在一个字符串,我会寻找空间:

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

这不回答这个问题。它仅仅测试一个字符串是否为非空并且不包含空格字符。 – jdv

+1

此问题以前不清楚 - 编辑OP以澄清他询问拼写检查 – drelliot

+0

应该等待澄清,因为原始Q中没有任何内容提示“检测到字符串是否是没有空格的单个字符串” 。 – jdv

我想你指的是英语在这里,有多个可用的库如果你想创建一个像jaazy这样的字典结构,或者google拼写检查API。

但如果你不希望将所有组的一些语言的单词,并有一小部分的话你own..then

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

让我知道你是否需要任何更多细节。

-Sami