字符串的split方法,很早就用过了,但是今天在论坛里看到别人提到的问题,还是让我很是困惑。故查找了相关的资料,并总结如下:
首先,查找了MSDN里关于split的重载方法:
重载列表
名称 | 说明 |
String.Split (Char[]) | 返回包含此实例中的子字符串(由指定 Char 数组的元素分隔)的 String 数组。 由 .NET Compact Framework 支持。 |
String.Split (Char[], Int32) | 返回包含此实例中的子字符串(由指定 Char 数组的元素分隔)的 String 数组。参数指定返回的子字符串的最大数量。 |
String.Split (Char[], StringSplitOptions) | 返回包含此字符串中的子字符串(由指定的 Char 数组的元素分隔)的 String 数组。参数指定是否返回空数组元素。 |
String.Split (String[], StringSplitOptions) | 返回包含此字符串中的子字符串(由指定的 String 数组的元素分隔)的 String 数组。参数指定是否返回空数组元素。 |
String.Split (Char[], Int32, StringSplitOptions) | 返回包含此字符串中的子字符串(由指定的 Char 数组的元素分隔)的 String 数组。参数指定要返回子字符串的最大数量,以及是否要返回空数组元素。 |
String.Split (String[], Int32, StringSplitOptions) | 返回包含此字符串中的子字符串(由指定的 String 数组的元素分隔)的 String 数组。参数指定要返回子字符串的最大数量,以及是否要返回空数组元素。 |
限于篇幅的问题,我只举第一个例子的说明。其余的还是有劳大家去看MSDN吧。
语法:
public string[] Split ( params char[] separator )
参数:
-
separator
-
分隔此实例中子字符串的 Unicode 字符数组、不包含分隔符的空数组或空引用(在 Visual Basic 中为 Nothing)。
返回值:
一个数组,其元素包含此实例中的子字符串,这些子字符串由 separator 中的一个或多个字符分隔。有关更多信息,请参见备注部分。
备注:
分隔符字符不包括在返回值数组的元素中。分隔符是使用序号比较检测的。
如果此实例不包含 separator 中的任何字符,则返回值数组由单个包含此实例的元素组成。如果 separator 参数为空引用(在 Visual Basic 中为 Nothing) 或不包含任何字符,则采用空白作为分隔符。
如果两个分隔符相邻,或者在此实例的开头或末尾找到分隔符,则相对应的数组元素包含 Empty(String.Empty 字段:表示空字符串。此字段为只读)。
其中StringSplitOptions类的成员选择如下两种:
成员名称 | 说明 | |
---|---|---|
None | 返回值包括含有空字符串的数组元素 | |
RemoveEmptyEntries | 返回值不包括含有空字符串的数组元素 |
例子:
输出结果:
this
is
a
list
of
words
with
a
bit
of
punctuation
写到这里其实还没有完的,但是里面有一些结果,我还不能很好的解释,所以暂不全盘托出。