本帖最后由 adadadgt 于 2014-06-12 01:32:47 编辑

解决方案 »

  1.   

    就是字符串相减
       public string str(string s1, string s2)
            { 
                char[] str1 = s2.ToCharArray();
                char[] str2 = s1.ToCharArray();
                for (int i = 0; i < str1.Length; i++)
                {
                    for (int j = 0; j < str2.Length; j++)
                    {
                        if (str1[i] == str2[j])
                        {
                            s1 = s1.Remove(s1.IndexOf(str1[i]), 1);
                            break;
                        }
                    }
                }
                return s1;
            }
            private void button1_Click(object sender, EventArgs e)
            {
                string a="111222333444";
                string b = "12344";
                string s = str(a, b);
            }
      

  2.   

    tring c=“1122334”这是去重吗,不是还有重复的吗
    你可以用Linq的一些方法去实现你的结果
    ListResult = ListA.Distinct().ToList();//去重
    ListResult = ListA.Except(ListB).ToList();//差集
    ListResult= ListA.Union(ListB).ToList();  //并集
    ListResult = ListA.Intersect(ListB).ToList();//交集
      

  3.   

    string a=“111222333444”
    string b=“12344”
    得到 string c=“1122334”按照你这样的,你就循环b的每一个字符,然后分别从a中删除就是了
      

  4.   

    他这个需求用linq还真不好搞。直接用1L的办法可行
      

  5.   

    5L 方法可行!
    string a = "111222333444";
    string b = "12344"; var aList = a.ToCharArray().ToList();
    b.ToCharArray().ForEach(o=>aList.Remove(o));
    string str = new string(aList.ToArray());
      

  6.   

    LZ这需求用list<T>的差集似乎不行,会全部都减掉的= =还是5楼的写法看起来比较简洁易懂~
    虽然我觉得str2也直接用List<char>就行了嘛……
          string a = "aaabbbcccddd";
                string b = "abcd";
                string c = "";
                List<char> ali = a.ToCharArray().ToList();
                List<char> bli = b.ToCharArray().ToList();
                bli.ForEach(p => ali.Remove(p));
                ali.ForEach(p => c += p);
      

  7.   


     string str = "11122134433399999932";
            string res = Regex.Replace(str, @"(\d)\1+", "$1");
    我觉得还是这种最靠谱
      

  8.   

    OH NO.。。看错了。。无视我的答案好了
      

  9.   

    把a,b都转成字符串队列,然后用b去匹配a,匹配到就将a,b队列同时移去。
      

  10.   

    把单个字符都加到hashtable或者字典里  Keys数组就是你要的结果
      

  11.   

    这个需求很奇葩啊,不过还是有简单的办法:private static object StrDiv(string s, string s1)
    {
        var cs = s.ToCharArray().ToList();
        var cs1 = s1.ToCharArray().ToList();
        cs1.ForEach(c => { if (cs.IndexOf(c) >= 0)cs.RemoveAt(cs.IndexOf(c)); });
        return new String(cs.ToArray());
    }