c# - 字符/字符串比较

标签 c#

我正在尝试为我的程序中的搜索功能提供建议功能,例如,我在搜索部分输入 janw doe,它会输出不匹配 - 您是说 jane doe 吗?我不确定问题是什么,也许与字符/字符串比较有关。我尝试将两个变量作为 char 类型进行比较,例如 char temp -->temp.Contains ...等,但出现错误(char不包含 Contains 的定义)。希望对此有任何帮助! 8)

if (found == false)
        {
            Console.WriteLine("\n\nMATCH NOT FOUND");
            int charMatch = 0, charCount = 0;
            string[] checkArray = new string[26];
            //construction site  /////////////////////////////////////////////////////////////////////////////////////////////////////////////
            for (int controlLoop = 0; controlLoop < contPeople.Length; controlLoop++)
            {
                foreach (char i in userContChange)
                {
                    charCount = charCount + 1;
                }
                for (int i = 0; i < userContChange.Length; )
                {
                    string temp = contPeople[controlLoop].name;
                    string check=Convert.ToString(userContChange[i]);
                    if (temp.Contains(check))
                    {
                        charMatch = charMatch + 1;
                    }
                }
                int half = charCount / 2;
                if (charMatch >= half)
                {
                    checkArray[controlLoop] = contPeople[controlLoop].name;
                }
            }
///////////////////////////////////////////////////////////////////////////////////////////////////////////
                Console.WriteLine("Did you mean: ");
                for (int a = 0; a < checkArray.Length; a++)
                {
                    Console.WriteLine(checkArray[a]);
                }
///////////////////////////////////////////////////////////////////////////////////////////////////

最佳答案

一个字符串由许多字符组成。字符是原始的,同样,它不“包含”任何其他项目。字符串基本上是一个字符数组。

用于比较字符串和字符:

char a = 'A';
String alan = "Alan";
Debug.Assert(alan[0] == a);

或者如果你有一个数字字符串..我想

char a = 'A';
String alan = "A";
Debug.Assert(alan == a.ToString());

所有这些断言都是真的

但是,我想对您的问题发表评论的主要原因是建议一种替代方法来建议“您是说吗?”。有一种称为 Levenshtein Distance 的算法,它计算将一个字符串转换为另一个字符串所需的“单个字符编辑次数”。它可以用来衡量两个字符串有多接近。您可能想了解一下该算法的工作原理,因为它可能对您有所帮助。

这是我发现的一个小程序,它演示了:Approximate String Matching with k-differences

还有维基百科链接 Levenshtein distance

关于c# - 字符/字符串比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12906297/

相关文章:

c# - Windows服务未显示在控制面板下的“添加删除程序”中

c# - 在类似 StringBuilder 的 C 模块中增加多少缓冲区?

c# - 尝试将不同的对象与 id 关联(将对象保存到 ravendb 时)

c# - 将全角转换为半角

c# - native 动态 Linq (C#)

c# - 在 Adob​​e Reader 中打开 PDF,而不是在浏览器中

c# - 如何在 C# WinForms 中调用 Javascript 函数到 Web 内容(可能是 WebBrowser)

c# - 在场景之间共享示例表

c# - 如何将 Bson 文档反序列化为 POCO?

c# - Mysql 查询 datagridview C#