如何以Char数组字符元素为标识,分割String字符并列示出来?
作者:成都.张均洪
国庆节大家玩的高兴吧!节日期间,还好有时间去书店买了本新书看看,这本书叫<<C#设计模式>>,其中有节叫”分析字符串的类”,对其所提供的方法对于一些高手来说也许算不了什么,可对于象我这样的新手来说真是受益不少啊,所以我提出了这个问题作为主题来讨论,也让大家分享一下.
我们先来看看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数组中元素的字符都不会出现,因为它被用作分割标识符了.
至此,大家可能明白了字符的分割与数组的关系了,如果是,我就满足了!