用.NET轻松分析字符串值

ZDNet软件频道 时间:2006-02-20 作者:Tony Patton |  我要评论(7)
本文关键词:TonyPatton dotnettrend .net Windows
.NET的String类会简化提取逗号之间的各个值的过程。String类的Split方法让你能够提取用特定字符分隔的各个值。

处理字符串值是大多数应用程序开发项目不可缺少的一部分。这常常涉及把字符串分析分解为单独的值。例如,接受来自诸如电子表格等外部数据源的数据往往会用到以一些常用格式出现的值,比如用逗号分隔的值。.NET的String类会简化提取逗号之间的各个值的过程。

提取值

String类的Split方法让你能够提取用特定字符分隔的各个值。分隔符的值被传递给方法,后者通过其第二个变体接受用第二个参数被重载,而这个参数用来指定返回的元素的最大数量。(注:你可以指定在一个字符数组里使用一个以上的分隔符。)从字符串提取出来的值被返回到String数组里。

下面是两个变量:

  • C#语言里的String.Split(char[]),或者VB.NET里的String.Split(Char())
  • C#语言里的String.Split(char[], int),或者VB.NET里的String.Split(Char(), Integer)

下面的C#代码段会利用使用逗号分隔的字符串值来填充一个数组:

string values = "TechRepublic.com, CNET.com, News.com, Builder.com, GameSpot.com";
string[] sites = values.Split(',');
foreach (string s in sites)

下面就是生成的结果:

TechRepublic.com
CNET.com
News.com
Builder.com
GameSpot.com

相应的VB.NET代码是:

Dim values As String
values = "TechRepublic.com, CNET.com, News.com, Builder.com, GameSpot.com"
Dim sites As String() = Nothing
sites = values.Split(",")
Dim s As String
For Each s In sites
Console.WriteLine(s)
Next s

你也可以指定多个分隔符,放在一个字符数组里。下面的代码会用逗号、冒号或者分号来分割字符串的值。此外,它用到了可选的第二个参数,把返回的值的最大数量设置为4。

char[] sep = new char[3];
sep[0] = ',';
sep[1] = ':';
sep[2] = ';';
string values = "TechRepublic.com: CNET.com, News.com, Builder.com; GameSpot.com";
string[] sites = values.Split(sep, 4);
foreach (string s in sites)

下面就是生成的结果(注意,第二个参数把字符串剩下的部分放在最后的数组元素里):

TechRepublic.com
CNET.com
News.com
Builder.com; GameSpot.com

相应的VB.NET代码是:

Dim values As String
values = "TechRepublic.com: CNET.com, News.com, Builder.com; GameSpot.com"
Dim sites As String() = Nothing
Dim sep(3) As Char
sep(0) = ","
sep(1) = ":"
sep(2) = ";"
sites = values.Split(sep, 4)
Dim s As String
For Each s In sites
Console.WriteLine(s)
Next s

尽管Split方法可以让你很容易使用字符串值里的各个元素,但是你可能还是需要根据预先定义的格式(比如用逗号分隔的值)来格式化所有的值。String类使得合成正确格式的字符串变得很容易。

TonyPatton

dotnettrend

.net

Windows


百度大联盟认证黄金会员Copyright© 1997- CNET Networks 版权所有。 ZDNet 是CNET Networks公司注册服务商标。
中华人民共和国电信与信息服务业务经营许可证编号:京ICP证010391号 京ICP备09041801号-159
京公网安备:1101082134