X="110001100001100101";switch (X)
{
case "110001100001100101":
a = "0";
break;
case "000100000110010100":
a = "1";
break;
case "000001001011001101":
a = "2";
break;
............................................如果是找出相同的一条字符串我们可以用上面的switch的方式..但如果要从几百条记录只找出最相似的一条记录应该怎么写呢?(相似是指字符串的相同位数的字符不同数最少) 。假如我的x="110001100001100111";怎么找出最相似他的一条记录呢?
注:每条都是0101字符串的长度都相等!
{
case "110001100001100101":
a = "0";
break;
case "000100000110010100":
a = "1";
break;
case "000001001011001101":
a = "2";
break;
............................................如果是找出相同的一条字符串我们可以用上面的switch的方式..但如果要从几百条记录只找出最相似的一条记录应该怎么写呢?(相似是指字符串的相同位数的字符不同数最少) 。假如我的x="110001100001100111";怎么找出最相似他的一条记录呢?
注:每条都是0101字符串的长度都相等!
解决方案 »
- 请提供一个VS2008(WEB/C#) 使用CrystalReport的Sample
- richtextbox中读数据的问题
- 怎么输出的是乱码,大家帮忙看
- 高手请进,关于BMP图的问题,实在搞不明白WINDOW下BMP的原理了,分不够的话我可以再加
- ListView隐藏Column问题
- MSPJGrid控件的用法
- 值对于Int32太大或太小---天哪,疯了,我要更改的字段中都没INT类型的啊?!!!
- combobox的数据帮定问题?(c#)
- <<C#应用程序开发全程演练>>打包程序怎么配置数据库才能运行?
- 帮我解释一下吧!
- C# 如何使windows窗体Form运行就最大化?
- 请教一个水晶报表的基础问题
int grade = 0;
for(i为0到n-1)
{
待比较字符串[i] = 提供字符串[i];
grade++;
}每个字符串都这样打个分,取分高的
你好。linq的哪个怎么用呀?
{
string X="110001100001100101"; //原始字符串
ArrayList al = new ArrayList();
al.Add("110001100001100101");
al.Add("000100000110010100");
al.Add("000001001011001101");
string s="";//记录相似字符串
int i = 0;//记录相似程度
for(int i=0;i<al.Count;i++)
{
int equals=StringEquals(X,al[i].ToString());
if (equals > i)
{
s = al[i].ToString();
i = equals;
}
}
}
//
private int StringEquals(string a1, string a2)
{
int sum=0;//相似程度越大,sum值越大
if (a1.Length = a2.Length)//长度不相同的不比较
{
for (int i = 0; i < a1.Length; i++)
{
if (a1[i].Equals(a2[i]))
{
sum=sum+1;
}
}
}
}
呵呵我改好了。并输出了我想要的结果。正确代码如下: private void button2_Click(object sender, EventArgs e)
{
string X = "110001100001100108"; //原始字符串
ArrayList al = new ArrayList();
al.Add("110001100001100000");
al.Add("000100100110010100");
al.Add("110101101001100111");
string s = "";//记录相似字符串
int zz=0;//记录相似程度
for (int i=0; i < al.Count; i++)
{
int equals = StringEquals(X, al[i].ToString());
if (equals > zz)
{
s = al[i].ToString();
zz = equals;
}
} MessageBox.Show(s);
}
//
private int StringEquals(string a1, string a2)
{
int sum = 0;//相似程度越大,sum值越大
if (a1.Length == a2.Length)//长度不相同的不比较
{
for (int i = 0; i < a1.Length; i++)
{
if (a1[i].Equals(a2[i]))
{
sum = sum + 1;
}
}
}
return sum;
}