string a="aaa,bbb,ccc,ddd";
string b="bbb";
用什么方法可以使a结果为"aaa,ccc,ddd"也就是实现两个字符串相减功能,谢了~

解决方案 »

  1.   

    string a="aaa,bbb,ccc,ddd";
    string b="bbb";
    a=replace(a,b+",","");
      

  2.   

    string a="aaa,bbb,ccc,ddd";
    string b="bbb";
    a = a.Replace(("," + b),"");
      

  3.   

    不对啊~replace不能直接用,是不是要导入命名空间,谢
      

  4.   

    可以直接用的.不能的话就是你少了USING引用
      

  5.   

    谢谢hchxxzx(NET?摸到一点门槛) 可是有个问题当a="aaa" b="aaa" 再用这个方法时就没用了~怎么会呢
      

  6.   

    string a="aaa,bbb,ccc,ddd";

    string b="bbb";

    a=a.Remove(a.IndexOf(b,0,a.Length)-1,b.Length);
      

  7.   

    有没有办法可以处理一下,当字符串a中不是只有一个值时用a = a.Replace(("," + b),"");
    否则用a = a.Replace((b),"");那怎么判断呢?谢~
      

  8.   

    扩展一下string a="aaa,bbb,ccc,ddd";

    string b="bbb";if(a.Substring(0, 3) == b)
    {
      b = b +",";
    }
    else
    {
      b = ","+ b;
    }

    a=a.Remove(a.IndexOf(b,0,a.Length)-1,b.Length);就是说如果 b 出现在 a 的开头,就在 b 后加一个逗号,否则在 b 前加一个逗号
      

  9.   

    相减的话就直接用替换string a="aaa,bbb,ccc,ddd";
    string b="bbb";
    a = a.Replace(b,"");然后再判断是否有两个或两个以上的逗号在一起的,有的话就用1个逗号代替
      

  10.   

    wlzbaby(没病真好)谢谢你,可是还是报错~
    StartIndex 不能小于 0。参数名: startIndex
      

  11.   

    string[] aa = a.split(new char[] {','});
    string bb = "";
    for (int i = 0;i<aa.length;i++)
    {
       if (aa.getvalue(i).tostring() != b)
           bb += aa.getvalue(i).tostring() + ",";
    }
    if (bb.length > 0)
       bb.substring(0,bb.length - 1);bb就是你要的或者
    string bb = a.replace(b,"");
    bb = bb.replace(",,",",");
      

  12.   

    //如下,是一个完整的判断
    string a="aaa,bbb,ccc,ddd";
    string b="bbb";
    if(a != "")
    {
    //先替换 
    a = a.Replace(b,"");
    }if(a!="")
    {
    //再替换两个单引号
    a = a.Replace(",,",",");
    //替换最前面的单引号
    a = a.substring(0,1) == ","?a.substring(1):a;
    //替换最后面的单引号
    a = a.substring(a.Length) == ","?a.substring(0,a.Length):a;
    }
    同时说两句,楼主虽然是新手,但看别人的回答要善于举一反三,自己勇于尝试,根据别人的思路,自己发挥,不能老是依赖别人.
      

  13.   

    保险点而且笨点的方法
    using System.Collections;
    ....

    string a = "aaa,bbb,ccc";
    string b ="bbb";
    string[] c = a.Split(",".ToCharArray());
    ArrayList al = new ArrayList();

    foreach (string d in c)
    {
    if (d != b)
    al.Add(d);
    }
    string[] e = new string[al.Count];
    for(int i =0; i< al.Count; ++i)
    {
    e[i] = (string)al[i];
    }
    string f = string.Join(",",e,0,e.Length);
      

  14.   

    楼主实际情况是什么样的?我用
    string a="aaa,bbb,ccc,ddd";
    string b="bbb";
    测了一下
    结果却是不对
    但没有报错,结果是 "aab,ccc,ddd"把最后一句稍作修改
    a = a.Remove(a.IndexOf(b,0,a.Length),b.Length);
    可以得到正确的结果楼主报错的问题可能是因为这个例子还不具有代表性
    把真实情况贴出来分析一下
      

  15.   

    string a="aaa,bbb,ccc,ddd";
    string b="bbb";string substr[]=a.Split(',');for (int i=0,i<subst.Length,i++)
    {
      if(substr[i]==b)
      {
         substr[i]=null;  
      } 
    }
    if(substr[0]!="") a=substr[0];
    for (int i=1,i<subst.Length,i++)
    {
      if(substr[i]!=null)
      {
         a+=(","+substr[i]);  
      } 
    }