有俩组字符串做比较,算出比较的那个字符串与被比较的字符串有几个相同的字符
如  A:1 2 3 4 5 6
    B:2 3 5 8 9 10  相同的字符哟  2 3 5 三个

解决方案 »

  1.   

    public int CompareString(string strA, string strB)
    {
        int ret = 0;
        foreach (int i = 0; i < strB.Length; i++)
        {
            if (strA.Contains(strB.Substring(i, 1)))
            {
                ret++;
            }
        }    return ret;
    }
      

  2.   

    以上是不考虑字符串内有相同字符的情况,也就是说如果相同会叠加。
    如果要过滤相同的,用下面的代码:
    public int CompareString(string strA, string strB)
    {
        int ret = 0;
        List<string> myList = new List<string>();    foreach (int i = 0; i < strB.Length; i++)
        {
            string s = strB.Substring(i, 1);
            if (!myList.Contains(s))
            {
                if (strA.Contains(strB.Substring(i, 1)))
                {
                    ret++;
                }            myList.Add(s);
            }
        }    return ret;
    }
      

  3.   

    Contains
    需要倒入包吗?我机子上没MSDN不好查,我的是2003的
      

  4.   

    第一段代码 using System 即可第二段代码 需要用 .NET 2.0 并 using System.Collections.Generic;
      

  5.   

    我用的是.net1.1 
    我用的第一段代码 报错
    “string”并不包含对“Contains”的定义
      

  6.   

    不好意思 Contains 是 2.0 的方法
    忘记了
    替换一下
    用 if (strA.IndexOf(strB.Substring(i, 1)) != -1)