永发信息网

C#中split的方法和用法

答案:2  悬赏:10  手机版
解决时间 2021-05-02 18:47
請告訴我有哪些方法
最佳答案

第一种方法:
string s=abcdeabcdeabcde;
string[] sArray=s.Split('c') ;
foreach(string i in sArray)
Console.WriteLine(i.ToString());
输出下面的结果:
ab
deab
deab
de


第二种方法:
我们看到了结果是以一个指定的字符进行的分割。使用另一种构造方法对多个字符进行分割:
string s="abcdeabcdeabcde";
string[] sArray1=s.Split(new char[3]{'c','d','e'}) ;
foreach(string i in sArray1)
Console.WriteLine(i.ToString());
可以输出下面的结果:
ab
ab
ab


第三种方法:
除了以上的这两种方法以外,第三种方法是使用正则表达式。新建一个控制台项目。然后先添加 using System.Text.RegularExpressions;
System.Text.RegularExpressions



string content=agcsmallmacsmallgggsmallytx;
string[]resultString=Regex.Split(content,small,RegexOptions.IgnoreCase)
foreach(string i in resultString)
Console.WriteLine(i.ToString());
输出下面的结果:
agc
mac
ggg
ytx


第四种方法:
string str1=我*****是*****一*****个*****教*****师;
string[] str2;
str1=str1.Replace(*****,*) ;
str2=str1.Split(*) ;
foreach(string i in str2)
Console.WriteLine(i.ToString());


第五种方法:
string str1=我**是*****一*****个*****教*****师;
我希望显示的结果为:我是一个教师。
我如果采用上面的第四种方法来做就会产生下面的错误:我 是一个教师。中间有空格输出,所以输出结果并不是希望的结果,这就又回到了正则表达式了,这时可以采用下面的第五种方法:
string str1=我**是*****一*****个*****教*****师;
string[] str2 = System.Text.RegularExpressions.Regex.Split(str1,@[*]+);
foreach(string i in str2)
Console.WriteLine(i.ToString());

全部回答

分割字符串函数split

/// <summary> /// 字符串分割符 /// </summary> public const string SEPARATORSTRING = "@#$@#$";

/// <summary> /// 取得字符的第几个字符,通过分割符分割的字符串,pos以1开始 /// </summary> /// <param name="str">字符串</param> /// <param name="separator">分割符</param> /// <param name="pos">第几个</param> /// <returns>返回第几个字符串</returns> /// <example>string str = Split("rrrrddrew@@tqwewerewddccc", "@@", 1);</example> public static string Split(string str, string separator, int pos) { int Len = str.Length; int Count = str.Length - str.Replace(separator, "").Length; int BitCount = 0; string returnValue = ""; string strValue = ""; string InSeparator = ""; if (Count == 0) { return str; } InSeparator = str.Substring(str.Length - separator.Length, separator.Length); if (InSeparator != separator) { str += separator; }

for (int i = 0; i < Count; i++) { BitCount = str.IndexOf(separator, 0); strValue = str.Substring(0, BitCount); str = str.Replace(strValue + separator, ""); if (i == pos - 1) { returnValue = strValue; break; } } return returnValue; } /// <summary> /// 取得字符的第几个字符,通过分割符分割的字符串,pos以1开始,以默认的字符串分割 /// </summary> /// <param name="str">字符串</param> /// <param name="pos">第几个</param> /// <returns>返回第几个字符串</returns> /// <example>string str = Split("rrrrddrew@@tqwewerewddccc",1);</example> public static string Split(string str, int pos) { int Len = str.Length; int Count = str.Length - str.Replace(SEPARATORSTRING, "").Length; int BitCount = 0; string returnValue = ""; string strValue = ""; string InSeparator = ""; if (Count == 0) { return str; } InSeparator = str.Substring(str.Length - SEPARATORSTRING.Length, SEPARATORSTRING.Length); if (InSeparator != SEPARATORSTRING) { str += SEPARATORSTRING; }

for (int i = 0; i < Count; i++) { BitCount = str.IndexOf(SEPARATORSTRING, 0); strValue = str.Substring(0, BitCount); str = str.Replace(strValue + SEPARATORSTRING, ""); if (i == pos - 1) { returnValue = strValue; break; } } return returnValue; } /// <summary> /// 取得分割后的字符串数据,数组以0开始 /// </summary> /// <param name="str">字符串</param> /// <param name="separator">分割符</param> /// <returns>返回分割后的字符串数组</returns> /// <example>string str=Split("rrrrddrew@@tqwewerewddccc@@", "@@")[1].ToString()</example> public static string[] Split(string str, string separator) { int Len = str.Length; int Count = 0; int BitCount = 0; string strValue = ""; string InSeparator = ""; InSeparator = str.Substring(str.Length - separator.Length, separator.Length); if (InSeparator != separator) { str += separator; } Count = (str.Length - str.Replace(separator, "").Length) / separator.Length; string[] returnValue = new string[Count]; for (int i = 0; i < Count; i++) { BitCount = str.IndexOf(separator, 0); strValue = str.Substring(0, BitCount); str = str.Replace(strValue + separator, ""); //MessageBox.Show(BitCount.ToString() + ";" + strValue.ToString() + ";" + str); returnValue[i] = strValue;

} return returnValue; } /// <summary> /// 取得分割后的字符串数据,数组以0开始,以默认的字符串分割 /// </summary> /// <param name="str">字符串</param> /// <returns>返回分割后的字符串数组</returns> /// <example>string str=Split("rrrrddrew@@tqwewerewddccc@@")[1].ToString()</example> public static string[] Split(string str) { int Len = str.Length; int Count = 0; int BitCount = 0; string strValue = ""; string InSeparator = ""; InSeparator = str.Substring(str.Length - SEPARATORSTRING.Length, SEPARATORSTRING.Length); if (InSeparator != SEPARATORSTRING) { str += SEPARATORSTRING; } Count = (str.Length - str.Replace(SEPARATORSTRING, "").Length) / SEPARATORSTRING.Length; string[] returnValue = new string[Count]; for (int i = 0; i < Count; i++) { BitCount = str.IndexOf(SEPARATORSTRING, 0); strValue = str.Substring(0, BitCount); str = str.Replace(strValue + SEPARATORSTRING, ""); //MessageBox.Show(BitCount.ToString() + ";" + strValue.ToString() + ";" + str); returnValue[i] = strValue;

} return returnValue; }

我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
天语D768的游戏在那里下载?有知道的吗
怎样才能让你爱的她对你有感觉?
天姿化妆品这个地址在什么地方,我要处理点事
谁知道哪里有诺基亚5230全套黑色外壳换哦?
板栗怎样长期保存?
父亲的菜园名句,关于父亲对我的爱的名言
為什麼我家的電腦沒有聲音?
请问现在地下城与勇士官方什么挂可以用?
靴子买什么好?
谁能给我游戏人生开通资格?
为什么我的左眼睛不停的跳?是坏事要来了吗?
目前中国体育界身价最高是谁?
爱情会有天长地久吗?
劲舞团为什么那么卡
西安到合肥的所有车次和票价,以及始发时间和
推荐资讯
想买部智能机,但价钱不能超过1500,有啥好推
急需 江苏省 违章机动车 违章网
台球黑八提高
帮忙抢一个游戏人生资格
QQ空间像个性签名样的说明怎么没了?
有什么好看的变身动漫
e63和5230哪个好
特种作业操作证真加有何区别?
吃麦片减肥吗?一定要早上吃吗,能抗饿吗
练舞蹈要先学会什么?什么是最重要的?
涡阳今年国庆期间有灯会吗?
那些东西或药品是富有蛋白质成分高的?
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?