C#中使用Split函数分割截取字符串

C#中使用Split函数分割截取字符串

String.Split方法提供了如下6个重载函数:
返回结果:一个数组,其元素包含此字符串中的子字符串,这些子字符串由 separator 中的一个或多个字符分隔。
参数:
separator:分隔此字符串中子字符串的字符数组、不包含分隔符的空数组或 null。

count: 要返回的子字符串的最大数量。
注意:count不能为负数,否则会抛出异常:T:System.ArgumentOutOfRangeException:

options:要省略返回的数组中的空数组元素,则为System.StringSplitOptions.RemoveEmptyEntries;要包含返回的数组中的空数组元素,则为System.StringSplitOptions.None。0:返回的值包括数组的元素,包含一个空字符串。1:返回值不包括包含空字符串的数组元素。
注意:options的值必须为0或者1,否则会抛出异常: T:System.ArgumentException: options 不是 System.StringSplitOptions 值之一。

函数摘要
public String[] Split(params char[] separator);摘要:基于数组中的字符将字符串拆分为多个子字符串。参数:separator。
public String[] Split(char[] separator, int count);摘要:基于数组中的字符将一个字符串拆分成最大数量的子字符串。 也可指定要返回的子字符串的最大数量。参数:separator,count。
public String[] Split(char[] separator, StringSplitOptions options);摘要:基于数组中的字符将字符串拆分为多个子字符串。 可以指定子字符串是否包含空数组元素。参数:separator,options。
public String[] Split(char[] separator, int count, StringSplitOptions options);摘要:基于数组中的字符将一个字符串拆分成最大数量的子字符串。参数:separator,count,options。
public String[] Split(String[] separator, StringSplitOptions options);摘要:基于数组中的字符串将字符串拆分为多个子字符串。 可以指定子字符串是否包含空数组元素。参数:separator,options。
public String[] Split(String[] separator, int count, StringSplitOptions options);摘要:基于数组中的字符串将一个字符串拆分成最大数量的子字符串。 可以指定子字符串是否包含空数组元素。参数:separator,count,options

下面就是简单地演示。

 string str = "aambbmccsdd";//先定义一个字符串中间用m和s隔开
 string[] A = str.Split('m');//通过m分割  返回的是数组类型的所以定义一个数组接收
 for (int i = 0; i < A.Length; i++) Console.WriteLine(A[i]);//使用for循环输出
 Console.ReadLine();

可以看到结果是
在这里插入图片描述
也可以通过new char[]{ ‘m’}的方式传参。
分割的参数有几个char[]的中括号里就填几。
例如:
string[] A = str.Split(new char[2]{ ‘m’,‘s’ });//通过m和s分割。

string str = "aambbmccsdd";//先定义一个字符串中间用m和s隔开
string[] A = str.Split(new char[]{ 'm'});//通过m分割  返回的是数组类型的所以定义一个数组接收
for (int i = 0; i < A.Length; i++) Console.WriteLine(A[i]);//使用for循环输出
Console.ReadLine();

在这里插入图片描述
为了方便直接把所有演示代码一块发出来,感兴趣的可以复制自己试试。


            string str = "aambbmccsdd";//先定义一个字符串中间用m和s隔开

            //String.Split(Char[])
            //通过m分割(结果 :"aa" "bb" "ccsdd")。
            string[] strArray = str.Split(new char[]{ 'm'});//通过m分割  返回的是数组类型的所以定义一个数组接收
            for (int i = 0; i < strArray.Length; i++) Console.WriteLine(strArray[i]);//使用for循环输出
            Console.WriteLine("************");
            //通过m和s进行分割 (结果 :"aa" "bb" "cc" "dd")。
            string[] strArray1 = str.Split('m', 's');//通过m和s进行分割 
            foreach (string i in strArray1) Console.WriteLine(i);
            Console.WriteLine("************");


            //String.Split(Char[],Int32)
            //只切割成两份(结果 :"aa" "bbmccsdd")。
            string[] strArray2 = str.Split(new char[] { 'm' },2);
            foreach (string i in strArray2) Console.WriteLine(i);
            Console.WriteLine("************");

            
            //定义一个切割后包含空字符的字符串
            string str1 = "aambbmmccsdd";
            //String.Split(String[], StringSplitOptions)
            //去除空元素  不带这个参数的其他重载默认也会保留空元素(结果 :"aa" "bb" "ccsdd")。
            string[] strArray3 = str1.Split(new char[] { 'm' }, StringSplitOptions.RemoveEmptyEntries);
            foreach (string i in strArray3) Console.WriteLine(i);
            Console.WriteLine("************");
            //保留空元素(结果 :"aa" "bb" "" "ccsdd")。
            string[] strArray4 = str1.Split(new char[] { 'm' }, StringSplitOptions.None);
            foreach (string i in strArray4) Console.WriteLine(i);
            Console.WriteLine("************");


            //修改字符串切割成2份且是否去除空元素
            str1 = "mmaambbmmccsdd";
            //String.Split(Char[], Int32, StringSplitOptions);
            //切割成2份且去除空元素(结果 :"aa" "bbmmccsdd")
            string[] strArray5 = str1.Split(new char[] { 'm'},2, StringSplitOptions.RemoveEmptyEntries);
            foreach (string i in strArray5) Console.WriteLine(i);
            Console.WriteLine("************");
            //切割成2份且保留空元素(结果 :"" "maambbmmccsdd")
            string[] strArray6 = str1.Split(new char[] { 'm' }, 2, StringSplitOptions.None);
            foreach (string i in strArray6) Console.WriteLine(i);
            Console.WriteLine("************");


            //修改为带符号的字符串 
            str1 = "a,b*c,,d";
            //public string[] Split(string[] separator, StringSplitOptions options);
            //不保留空元素(结果 :"a" "b" "c" "d")。
            string[] strArray7 = str1.Split(new string[] { ",", "*" }, StringSplitOptions.RemoveEmptyEntries);
            foreach (string i in strArray7) Console.WriteLine(i);
            Console.WriteLine("************");
            //保留空元素 (结果 :"a" "b" "c" "" "d")。
            string[] strArray8 = str1.Split(new string[] { ",", "*" }, StringSplitOptions.None);
            foreach (string i in strArray8) Console.WriteLine(i);
            Console.WriteLine("************");

            //不保留空元素(结果 :"a" "b*c,,d")。
            string[] strArray9 = str1.Split(new string[] { ",", "*" }, 2, StringSplitOptions.RemoveEmptyEntries);
            foreach (string i in strArray9) Console.WriteLine(i);
            Console.WriteLine("************");
            //保留空元素(结果 :"a" "b" "c" "" "d")。
            string[] strArray10 = str1.Split(new string[] { ",", "*" }, 5, StringSplitOptions.None);
            foreach (string i in strArray10) Console.WriteLine(i);
            Console.ReadLine();
  • 4
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值