如何检查给定的字符串是否是真实的单词?

How can I check if a string given is a real word?

我正在制作一个在 Visual Basic 中解决字谜的程序。如何检查 Anagram 求解器给出的字符串是否是真实单词?我知道我必须访问某种字典,但我不知道该怎么做?

我需要一个函数来将单词检查为 return 一个 true/false 布尔值。这可能吗?

我在 Microsoft 的 VS2015 中使用 Visual Basic。

Hunspell 非常容易使用。

  • 通过 Nuget 安装 .net-library(在 Visual Studio 中打开您的项目,然后 > Extras > Nuget-Package-Manager -> Console,输入 Install-Package NHunspell
  • 下载 .aiff 和 .dic 文件,查看 Hunspell 项目页面上的词典 link。在您的项目中包含这些文件或使用绝对路径。

示例代码:

Private Sub TextBox1_TextChanged(sender As Object, e As EventArgs) Handles TextBox1.TextChanged
    Using h As New NHunspell.Hunspell(
        "...path ...\en_US.aff",
        "...path ...\en_US.dic")
        Me.TextBox1.BackColor = If(h.Spell(Me.TextBox1.Text),
            Color.PaleGreen, Color.PeachPuff)
    End Using
End Sub

Hunspell

.net library NHunspell

NHunspell C# Code Samples

如果您使用的是 WPF,那么只需检查文本框中的单词是否存在拼写错误即可检查文本框中的单词是否存在。

Public Function WordOk(Word As String) As Boolean
    return TextBox1.GetNextSpellingErrorCharacterIndex(0, Windows.Documents.LogicalDirection.Forward) < 0 
End Function

如果您正在使用 windows 表单,那么您可以创建一个 "User Control (WPF)" 来做同样的事情,尽管在这里解释如何做有点棘手。

(可能有比我展示的更好的测试。我对 WPF 不是很熟悉)