求解一个模糊匹配的问题 求解一个模糊匹配的问题 匹配的要求是这样的, 比如我有一个字符串"abcdefgh" 另外一个字符串"abc_dddegawe",如果两个字符串里边同时存在 并且相邻位置一样的话,那么这两个字符串可以理解为是相同的 ,这个要怎么做 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 "abcdefgh""abc_dddegawe",同时 存在abc 而且abc的相对位置是一样的 "abcdefgh""abc_dddegawe","ad_abc_asdf"上面三个字符串都可以理解为相同的 http://blog.csdn.net/binqray/article/details/5827821 楼主并不说明相邻多少位相等,所以这里认为有2位等就是相等了bool IsEqual(string str1, string str2){ var list = from s1 in str1 from s2 in str1 select s1 + "" + s2; foreach (var s in list) { if (str2.IndexOf(s) == 0) return true; } return false;} static bool IsEqual(string str1, string str2,int n){ for(int i=0;i<str2.Length-n+1;i++) { if(str1.IndexOf(str2.Substring(i,n))>=0) return true; } return false;} bool CompareTwoStrings(string s1, string s2){ bool[] query = str1.Zip(str2, (x, y) => x == y).ToArray(); foreach (int i = 1; i < query.GetLength(0); i++) if ((query[i - 1] == query[i]) && query[i]) return true; return false;} 不知是否确定至少为2个字符?也凑个热闹,用以前写的稍改:string aa1 = "abcdefgh", aa2 = "ad_abc_asdf", aa3 = ""; for (int a=0;a<aa1 .Length-2 ;a++) if(aa2 .Contains (aa1 .Substring (a,2))) aa3 =aa1 .Substring (a,2) ;//ab被bc替换掉结果是bc,如果想得到的是abc也是有办法的 string aa1 = "abcdefgh", aa2 = "ad_abc_asdf", aa3 = ""; for (int a=0;a<aa1 .Length-2 ;a++) if(aa2 .Contains (aa1 .Substring (a,2))) aa3 +=aa1 .Substring (a,2) ;//ab被bc替换掉结果是bc aa3 =new string( aa3.ToArray ().Distinct().ToArray ()); 读文本文件出的问题,应该很简单,只是我不会,求高人指点 如何判断一个字符串是否是有效时间? 我这个text文本框怎么取不到委托里面的值呢?代码如下 高手几秒钟就能解决的问题? 怎么更改vs2005里project文件夹的默认路径 统计中英文个数的。中文为什么统计不准确 winfrom怎么使窗体变大,控件的位置也跟着原来设计的比例移动? 用C#能去增加一个有关系的表SQL语句怎么写的! SQL语句出错,帮忙改一下。 把程序代码写在.aspx页里面,会象在.aspx.cs一样出现智能的提示吗? 当GUID在Entityframework中遇到Oracle 各位大神,这算什么加密?
"abc_dddegawe",
同时 存在abc 而且abc的相对位置是一样的
"abc_dddegawe",
"ad_abc_asdf"上面三个字符串都可以理解为相同的
{
var list = from s1 in str1 from s2 in str1 select s1 + "" + s2;
foreach (var s in list)
{
if (str2.IndexOf(s) == 0)
return true;
}
return false;
}
{
for(int i=0;i<str2.Length-n+1;i++)
{
if(str1.IndexOf(str2.Substring(i,n))>=0)
return true;
}
return false;
}
{
bool[] query = str1.Zip(str2, (x, y) => x == y).ToArray();
foreach (int i = 1; i < query.GetLength(0); i++)
if ((query[i - 1] == query[i]) && query[i]) return true;
return false;
}
string aa1 = "abcdefgh", aa2 = "ad_abc_asdf", aa3 = "";
for (int a=0;a<aa1 .Length-2 ;a++)
if(aa2 .Contains (aa1 .Substring (a,2)))
aa3 =aa1 .Substring (a,2) ;//ab被bc替换掉结果是bc,如果想得到的是abc也是有办法的
for (int a=0;a<aa1 .Length-2 ;a++)
if(aa2 .Contains (aa1 .Substring (a,2)))
aa3 +=aa1 .Substring (a,2) ;//ab被bc替换掉结果是bc
aa3 =new string( aa3.ToArray ().Distinct().ToArray ());