原创日志

c#中Split分割字符串时常见问题分析

[ 2007-05-29 02:12:16 | 作者: admin ]
字号: | |
1、用String.Split 函数时,若间隔符为单个字符,就没有问题了 String.Split('|') 。
引用
演示:
===============
string strBreak = "|";
string str= "111"+ strBreak +"222"+ strBreak +"333"+ strBreak +"444";
string[] arr1=str.Split('|') ;
foreach(string i in arr1)
    Response.Write( i.ToString() +"<br>\n");

结果(符合要求)
===============
111<br>
222<br>
333<br>
444<br>
2、若间隔字符为多个字符,情况就不同了,其结果并不是我们所希望看到的
引用
演示:
===============
string strBreak = "||";
string str= "111"+ strBreak +"222"+ strBreak +"333"+ strBreak +"444";
char[] arrChr = strBreak.ToCharArray();
string[] arr1=str.Split(arrChr) ;
//string[] arr1=str.Split(new char[2]{'|','|'}) ;//或者这样写
foreach(string i in arr1)
      Response.Write( i.ToString() +"<br>\n");

结果(有几个字符就会打印几个<br>,不符合要求)
===============
111<br>
<br>
222<br>
<br>
333<br>
<br>
444<br>
3、用正则来处理多字符的情况。
引用
演示:
===============
string strBreak = "||";
string str= "111"+ strBreak +"222"+ strBreak +"333"+ strBreak +"444";
string[] arr1=Regex.Split(str,@"\|\|",RegexOptions.IgnoreCase);
//string[] arr1=Regex.Split(str,"\\u007C\\u007C",RegexOptions.IgnoreCase); //也可以用 \\u007C 替代特殊字符 |

foreach(string i in arr1)
        Response.Write( i.ToString() +"<br>\n");

结果(符合要求)
===============
111<br>
222<br>
333<br>
444<br>
[最后修改由 admin, 于 2007-05-29 11:25:00]
评论Feed 评论Feed: http://blog.xg98.com/feed.asp?q=comment&id=908

这篇日志没有评论。

此日志不可发表评论。