我想找出在 a中的字符串中的哪个数 加上 b中的字符串中的哪个数 就是在ab中已存在的数,为合法组合
    例如:2+1=3 就得出 a=2 和b=1 是合法组合
    例如:2+11=13 就得出 a=2 和b=11 是不合法组合,因为ab中不存在11  a = "2,3,4,5,8";
  b = "1,3,8,9,11";
  ab = "3,4,5,6,7,8,9,10,12,14,16,22";

解决方案 »

  1.   

    split拆分字符串,然后循环挨着个的加吧.加完到ab中indexof找找
      

  2.   

    输出的样式是: a+b,a+b,a+b,a+b,a+b
    就是a中的数加b中的数的不同组合
      

  3.   

    a   =   "2,3,4,5,8"; 
    b   =   "1,3,8,9,11"; 
    ab   =   "3,4,5,6,7,8,9,10,12,14,16,22"; 
    先用split将a,b字符串,分解为数组;
    两层for循环,计算a+b的值,然后值在ab中循找索引,indexof,若大于零表示存在,pass.否则不符要求,不以记录.
      

  4.   

    string a = "2,3,4,5,8"; 
    string b = "1,3,8,9,11"; 
    string ab = "3,4,5,6,7,8,9,10,12,14,16,22"; 
    string[] numberStringArrayA = a.Split(',');
    string[] numberStringArrayB = b.Split(',');
    string[] numberStringArrayAB = ab.Split(',');
    StringBuiler result = new StringBuilder();
    foreach(string numberStringA in numberStringArrayA)
    {
        foreach(string numberStringB in numberStringArrayB)
        {
            string addResultString =(int.Parse(numberStringA)+int.Parse(numberStringB)).ToString();
            if(Array.IndexOf<String>(numberStringArrayAB,addResultString)>=0)
            {
                 result.Append(numberStringA);
                 result.Append('+');
                 result.Append(numberStringB);
                 result.Append(',');
            }       
        }
    }
    if(result.Length>0)
    {
        result.Remove(result.Length-1,1); // 把最后一个多余的逗号去掉 
    }
    Console.WriteLine(result.ToString());
    在回复窗口里面敲的,没调试过,如果有问题自己改改吧~~  如果要放入生产环境,注意加上异常捕捉。
      

  5.   

    注意不能像上面1楼和4楼说的直接在原来那个ab的字符串里面用IndexOf来寻找字符串,因为这样会造成错误,比如会找到一个 2 (在12和22里面都有2),但实际上ab并没有一个2。还有最后去掉逗号要先判断长度大于0,否则万一没有一个符合条件会异常。