C#计算2个字符串的相似度
计算字符串相似度,直接来C#代码
publicstaticfloatlevenshtein(stringstr1,stringstr2)
{
//计算两个字符串的长度。
intlen1=str1.Length;
intlen2=str2.Length;
//建立上面说的数组,比字符长度大一个空间
int[,]dif=newint[len1+1,len2+1];
//赋初值,步骤B。
for(inta=0;a<=len1;a++)
{
dif[a,0]=a;
}
for(inta=0;a<=len2;a++)
{
dif[0,a]=a;
}
//计算两个字符是否一样,计算左上的值
inttemp;
for(inti=1;i<=len1;i++)
{
for(intj=1;j<=len2;j++)
{
if(str1[i-1]==str2[j-1])
{
temp=0;
}
else
{
temp=1;
}
//取三个值中最小的
dif[i,j]=Math.Min(Math.Min(dif[i-1,j-1]+temp,dif[i,j-1]+1),dif[i-1,j]+1);
}
}
Console.WriteLine("字符串\""+str1+"\"与\""+str2+"\"的比较");
//取数组右下角的值,同样不同位置代表不同字符串的比较
Console.WriteLine("差异步骤:"+dif[len1,len2]);
//计算相似度
floatsimilarity=1-(float)dif[len1,len2]/Math.Max(str1.Length,str2.Length);
Console.WriteLine("相似度:"+similarity);
returnsimilarity;
}
返回结果就是相似度了,验证码识别上用的到
爱给模板网提供
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。