[Programming]分割字符串的小函数(C#)

经常遇到需要将类似“a; bb; ccc; ”这类的字符串,分割成一个字符串数组(string[]),其中主要的规律是使用“; ”作为字符串间隔。问题是,在分号“;”后面,为了显示的美观,其实经常是跟着一个空格的。而我们提取出来的字符串又不需要用空格作为开始。而另外一个郁闷的问题是,拿我们最常用的 Split(‘;’) 函数来运行的话,最后的结果,其实是诡异的“a”, “bb”, “ccc”, ” “,竟然最尾巴的那个空格,也会成为一个结果返回出来,如果句末没有空格的话,也会返回一个空字符串,这也并不是我们想要的结果。当然也想过用正则去匹配,但是还是感觉有点麻烦,而且还牵扯到许多正则的对象。于是就写了下面这个函数。

using System.Collections;

static public string[] SeperateString(string sSource, char cSeperator)
{
    ArrayList al = new ArrayList();

    foreach (string s in sSource.Split(cSeperator))
    {
	if (s.Trim().Length == 0) continue;
	al.Add(s.Trim());
    }

    return(String[])al.ToArray(typeof(string));
}

其实道理也很简单,随便一看都看得明白。最近有点上重构的瘾,哈哈~

关于aGuegu

向着更高的逼格
此条目发表在C#分类目录,贴了, 标签。将固定链接加入收藏夹。
  • 可以用 StringSplitOptions.RemoveEmptyEntries

    • 还有这个选项啊,谢谢~