asp.net中字符串切割split函数用法

语法

Split(expression[, delimiter[, count[, start]]])

Split 函数的语法有以下参数:

expression 必选。字符串表达式,包含子字符串和分隔符。如果 expression 为零长度字符串,Split 返回空数组,即不包含元素和数据的数组。

delimiter 可选。用于标识子字符串界限的字符。如果省略,使用空格 ("") 作为分隔符。如果 delimiter 为零长度字符串,则返回包含整个 expression 字符串的单元素数组。

count 可选。被返回的子字符串数目,-1 指示返回所有子字符串。

compare 可选。指示在计算子字符串时使用的比较类型的数值。compare 参数可以有以下值:
 

vbBinaryCompare 0 执行二进制比较。
vbTextCompare 1 执行文本比较。
 

String.Split 方法有6个重载函数:
 

1) public string[] Split(params char[] separator)
2) public string[] Split(char[] separator, int count)
3) public string[] Split(char[] separator, StringSplitOptions options)
4) public string[] Split(string[] separator, StringSplitOptions options)
5) public string[] Split(char[] separator, int count, StringSplitOptions options)
6) public string[] Split(string[] separator, int count, StringSplitOptions options)

下面看实例

一、引入命名空间

using System.Text.RegularExpressions;

1、用字符串分隔:

 代码如下 复制代码

string str="aaajsbbbjsccc";
string[] sArray=Regex.Split(str,"js",RegexOptions.IgnoreCase);
foreach (string i in sArray) Response.Write(i.ToString() + "<br>");

输出结果:
aaa
bbb
ccc

2、用多个字符来分隔:

 代码如下 复制代码

string str="aaajbbbscccjdddseee";
string[] sArray=str.Split(new char[2]{'j','s'});
foreach(string i in sArray) Response.Write(i.ToString() + "<br>");

输出结果:
aaa
bbb
ccc
ddd
eee

3、用单个字符来分隔:

 代码如下 复制代码

string str="aaajbbbjccc";
string[] sArray=str.Split('j');
foreach(string i in sArray) Response.Write(i.ToString() + "<br>");

输出结果:
aaa
bbb
ccc

例一:用单符号分隔字符串,用split函数拆分。

实例字符串:aaaa|ccccc|dddd|eeeee|ffff

代码如下:

 代码如下 复制代码

        string str = "aaaa|ccccc|dddd|eeeee|ffff";
        string[] array = str.Split('|');
        foreach (string i in array) Response.Write(i+"<br />");

输出结果:

aaaa
ccccc
dddd
eeeee
ffff

Split函数里面我们传入的是一个char型,所以必须要用单引号而不能写成:str.Split("|") 应用的重载如下:

 

例二:用多字符分隔字符串,用split分组拆分。

实例字符串:aaaa|ccccc,dddd,eeeee|ffff

代码如下:

 代码如下 复制代码

        string str = "aaaa|ccccc,dddd,eeeee|ffff";
        string[] array = str.Split(new char[2] { '|', ','});
        foreach (string i in array) Response.Write(i+"<br />");
输出结果:

aaaa
ccccc
dddd
eeeee
ffff

因为在Split里面需要的参数是一个char型数组,所以我们可以一次性传入多个char字符,如果我们的字符串用不同的符号分隔的,那么我们就可以用这个方法来完成字符串的切分。

例三:字符串分隔用正则的匹配split拆分。

实例字符串:www.laozamao.comtiandaowww.baidu.comtiandaowww.lvyougang.com

大家看到这个字符串很诡异,不过在现实情况中我们还真有可能遇到这样的,那就是用字符串分隔的,非单个字符。例如本例中我们用tiandao这样的字符串来分隔,那么这时候用字符串的split函数我们就很难做到了,不过没关系,我们可以用正则中的split来完成这个功能。代码如下:

首先引用名字空间:using System.Text.RegularExpressions;

 代码如下 复制代码

        string str = "www.111cn.nettiandaowww.baidu.comtiandaowww.111cn.net";
        string[] sArray = Regex.Split(str, "tiandao", RegexOptions.IgnoreCase);
        foreach (string i in sArray) Response.Write(i.ToString() + "<br />");
输出结果:

www.111cn.net
www.baidu.com
www.111cn.net

扩展方法讲解

在上面的三个例子中我样已经基本把字符串分隔中遇到的情况差不多都讲解了,但是其中遗漏了这样一种情况:空元素

也就是说在分隔之后我们有可能得到一组空数据,通常我们的做法是在得到结果的时候判断是否为空,然后再做处理,其实在split函数里已经提供了空元素的解决方法,那就是split的第二个参数:StringSplitOptions,这是一个枚举类型,我们来看一下他的值:

 

第一个:None是返回值包括含有空字符串的数组元素

 

第二个:RemoveEmptyEntries是返回值不包括含有空字符串的数组元素

现在我们再返回来看字符串的Split函数,发现他有六次重载,这六次重载中第一个参数有两种变化,char型和string型数组,第二个参数是返回个数,如我分隔之后有五个,那么我只需要前三个,就可以在第二个参数传值限制返回个数,这个就不再详细的讲解了,重点第三个枚举的两种状态我们做一个小测试:

例四:在split函数中包含空元素。

实例字符串:aaaa,,aaa,aaa,aaa,,,,aaa

代码如下:

 代码如下 复制代码

        string str = "aaaa,,aaa,aaa,aaa,,,,aaa";
        string[] array = str.Split(new char[1]{','}, StringSplitOptions.None);
        foreach (string i in array) Response.Write(i + "<br />");
我们第二个参数传的是包含空元素,那么得到的结果是:

aaaa

aaa
aaa
aaa

 

aaa

如果我们把代码改一下:

 代码如下 复制代码

        string str = "aaaa,,aaa,aaa,aaa,,,,aaa";
        string[] array = str.Split(new char[1]{','}, StringSplitOptions.RemoveEmptyEntries);
        foreach (string i in array) Response.Write(i + "<br />");
输出结果:

aaaa
aaa
aaa
aaa
aaa

这样我们就不需要去另外加判断是否为空字符串了,所以说这是一个很实用的功能。

时间: 2024-10-26 05:49:12

asp.net中字符串切割split函数用法的相关文章

PHP中addcslashes与stripcslashes函数用法分析_php技巧

本文实例分析了PHP中addcslashes与stripcslashes函数用法.分享给大家供大家参考,具体如下: 在写一个网站的英文版时,写完后填加英文资料,我随便填写时一点问题没有,但每当填加指定的内容时却填加不上,也不报错,我查看了数据库,发现这个字段用的是"TEXT"数据数型,我以为是内容过长的原因,于是我把数据类型改成了"longtext",但提交时发现还是出现同样的问题.下面我们给大家介绍一下addcslashes函数吧! 后来请教同事,同事发现在是英文

asp.net中GridView编辑,更新,合计用法示例_实用技巧

本文实例讲述了asp.net中GridView编辑,更新,合计用法.分享给大家供大家参考,具体如下: 前台代码: <asp:GridView ID="tabgv" runat="server" DataKeyNames="ysId" ShowFooter="True" OnRowDataBound="GridView1_RowDataBound" OnRowCreated="GridView

jQuery中常用的遍历函数用法实例总结_jquery

本文实例总结了jQuery中常用的遍历函数用法.分享给大家供大家参考.具体如下: 1. children()函数 children()函数用于选取每个匹配元素的子元素,并以jQuery对象的形式返回. 你还可以使用选择器进一步缩小筛选范围,筛选出符合指定选择器的元素. 用法示例如下: // 返回jQuery对象所有匹配元素的标识信息数组 // 每个元素形如:tagName或tagName#id(如果有id的话) function getTagsInfo($doms){ return $doms.

php中convert_uuencode()与convert_uuencode函数用法实例_php技巧

本文实例讲述了php中convert_uuencode()与convert_uuencode函数用法.分享给大家供大家参考.具体分析如下: onvert_uudecode() 函数对 uuencode 编码的字符串进行解码. 语法:convert_uudecode(string),代码如下: 复制代码 代码如下: $str=",2&5l;&/@=v]r;&0a `";         //定义uuencode编码字符串 $result=convert_uudec

PHP中substr()与explode()函数用法分析_php技巧

本文实例讲述了PHP中substr()与explode()函数用法.分享给大家供大家参考.具体方法如下: substr(string,start,length):本函数将字符串 string 的第 start 位起的字符串取出 length 个字符,若 start 为负数,则从字符串尾端算起,若可省略的参数 length 存在,但为负数,则表示取到倒数第 length 个字符,实例代码如下: 复制代码 代码如下: <?php echo substr("abcdef", 1, 3)

ASP.NET中 script runat server 的用法_实用技巧

本文实例讲述了ASP.NET中<script runat="server">的用法,分享给大家供大家参考.具体如下: 在ASP.NET的.aspx页面中,可以在<head>代码</head>标签中通过<script runat="server">添加代码.其实,这里的代码和.cs文件中的代码地位是相同的,都是在服务器端执行的. 例: 复制代码 代码如下: <script type="text/javas

sql字符串分割split函数

sql字符串分割split函数 使用指定的字符分割字符串. 思路:1,先计算出指定的分割字符在字符串中的索引, 2.然后再分割字符串. sql代码如下: declare @strorder nvarchar(200) declare @ismulorder int declare @firstOrder nvarchar(200) declare @secondOrder nvarchar(200) set @strorder='LastModifyDate Desc,OurPrice Asc'

Python中threading模块join函数用法实例分析

  本文实例讲述了Python中threading模块join函数用法.分享给大家供大家参考.具体分析如下: join的作用是众所周知的,阻塞进程直到线程执行完毕.通用的做法是我们启动一批线程,最后join这些线程结束,例如: ? 1 2 3 4 5 6 7 8 9 for i in range(10): t = ThreadTest(i) thread_arr.append(t)   for i in range(10): thread_arr[i].start()   for i in ra

php中sprintf与printf函数用法区别

 这篇文章主要介绍了php中sprintf与printf函数用法区别解析,需要的朋友可以参考下 下面是一个示例:四舍五入保留小数点后两位    代码如下: <?php $num1 = 21; echo sprintf("%0.2f",$num1)."<br />"; //输出 21.00 $num2 = 16.3287; echo sprintf("%0.2f",$num2)."<br />";