C# 如何在C语言中检查两个字符串的部分相似性#
C#中是否有检查两个字符串相似性百分比的函数 例如,我有:C# 如何在C语言中检查两个字符串的部分相似性#,c#,C#,C#中是否有检查两个字符串相似性百分比的函数 例如,我有: var string1="Hello how are you doing"; var string2= " hi, how are you"; 和 function(string1, string2) 将返回相似性比率,因为“how”、“are”、“you”等词出现在行中 或者更好,返回60%的相似性,因为“how”、“are”、“you”是string1的3/5 C#中是否存在任何函数,哪些函数可以做到这一点 您可以创建一个函
var string1="Hello how are you doing";
var string2= " hi, how are you";
和
function(string1, string2)
将返回相似性比率,因为“how”、“are”、“you”等词出现在行中
或者更好,返回60%的相似性,因为“how”、“are”、“you”是string1的3/5
C#中是否存在任何函数,哪些函数可以做到这一点 您可以创建一个函数,将两个字符串拆分为数组,然后对其中一个字符串进行迭代,以检查另一个字符串中是否存在该单词
如果你想得到它的百分比,你必须计算单词的总数,看看有多少是相似的,然后根据这个数字创建一个数字。字符串相似性的一个常用度量是所谓的或编辑距离。在这种方法中,定义了一组特定的编辑操作。Levenshtein距离是从第一个字符串获取第二个字符串所需的最小编辑步骤数。与之密切相关的是,它使用一组不同的编辑操作
从算法上讲,Levenshtein距离可以使用计算,这被认为是有效的。但是,请注意,这种方法实际上并没有考虑单个单词,也不能直接用百分比表示相似性。现在我冒着风险在这里给出我的建议,但是在您试图获得接近但不太复杂的东西的情况下,然后有很多比Levenshtein距离更简单的解决方案,如果你需要exakt结果并且有时间编写代码,这是完美的 如果您在准确性方面稍有松懈,那么我将遵循以下简单规则:
(strearch==strReal)
-如果匹配退出[aeiou-“!]
现在您有两个已转换的字符串。您的搜索字符串:
mths dhlgrn mtbrn
和你真正的字符串进行比较
rstrnt mths dhlgrn
\W+
33
66
-因此66%匹配好的,现在不要告诉我太快,因为其他答案都是完美的,这只是一个懒惰开发人员的解决方案,可能很有价值,结果满足预期。
“你好”。包含(“你好”)
返回true
;看一看。实际上,这是对一个内容相同的不同问题的回答:)