我们先来看看tochararray()和split()这两个方法,因为它与本问题相关.
先看tochararray()方法,它是将此实例中的字符复制到 unicode 字符数组,它属于string类的方法,能够把字符串返向转换为一个字符数组,比如:
string str=”this is”;
char[] arr;
arr=str.tochararray();//把"this is string”以单个字符分开,成为char数组的元素
如果我们要输出看一下(假设有个listbox控件)方法如下:
foreach(char[] c in arr)
{
listbox1.items.add(c.tostring());
}
的结果是这样的:
t
h
i
s
i
s
看看这个结果,可以明白包括空格在内都被分开成了char数组的元素.
我们再来看看split()方法:
split()方法是标识此实例中的子字符串(它们由数组中指定的一个或多个字符进行分隔),然后将这些子字符串放入一个 string 数组中。
它有两个重载版本:
public string[] split(params char[]);
和
public string[] split(char[], int);
我们讲第一个版本,后一个版本在msdn中有解释.
它的参数是一个char[]数组,也就是以char[]中的元素作为分割的标识,分割后的结果存入string[]数组中,我们来举个例:
string stra=”what is this?,oh,orange!”;
string[] arstr;
arstr=stra.split(str.tochararray());//str是我们前面定义了的”this is”
这时arstr[]数组中的元素就是由str中的7个字符为标识分割stra字符后产生的元素
我们来看一下结果如例:
foreach(string cc in arstr)
{
listbox1.items.add(cc.tostring());
}
结果就是:
wa
?,o
,orange!
string[]数组arstr中凡是有arr数组中元素的字符都不会出现,因为它被用作分割标识符了.
至此,大家可能明白了字符的分割与数组的关系了,如果是,我就满足了!