string abc="abc,,bcd,,def,,ghi";
  string[] test = abc.Split(new char[]{',',','});
上面两条简单的语句,为什么得出的结果数组长度不是4,而是7?如何得到正确的结果呢?

解决方案 »

  1.   

    string[] test = abc.Split(',,');
      

  2.   

    string[] test = abc.Split(',');
      

  3.   

    应该是分成了(*为空)
    abc
    *
    bcd
    *
    def
    *
    ghi
    这样一个数组了吧.
      

  4.   

    string abc="abc,,bcd,,def,,ghi";
    abc=abc.Replace(",,","|");
    string[] test = abc.Split(new char[]{'|'});
      

  5.   

    abc.Split(new char[]{',',','});
    分割是按照字符分割,所以你上面这个等价于
    abc.Split(',');
    你可以用abc.Replace(“,,”,“,”)将连续的两个“,”替换成一个“,”然后再用
    abc.Split(',');
      

  6.   

    Lcindep110(Descovering YourSelf)
    对,就是这样Zine_Alone(老鼠都给猫当伴娘了.哎.) 
    我这里不能使用单个字符,所以你的方法我早就考虑过,不能用因为要区分的字符串是可以包含任何字符的,所以我要用多个字符来分隔
      

  7.   

    Regex regex = new Regex(",,");
    string abc="abc,,bcd,,def,,ghi";
    string[] test = regex.Split( abc )
      

  8.   

    Split结果本身没错,主要是你的字符串比较撮!楼上的方法应该是可以的,但是也比较搓!不通用,不过对你这个问题是够用了!
      

  9.   

    DotNET3() 
    那能否给个通用的做法呢?
    重写Split除外
      

  10.   

    Regex regex = new Regex("^[,]$");
    string abc="abc,,bcd,,def,,ghi";
    string[] test = regex.Split( abc )可惜啊。你把分给别人了。呵呵