c#切割字符串几种方法

 

 

 

1,按单一字符切割


string  s = " abcdeabcdeabcde " ;
string [] sArray = s.Split( " c " );
oreach(
string  i  in  sArray)
Console.WriteLine(i.ToString());
 
输出下面的结果:
                       ab
                       deab
                       deab
                       de

2,按多个单一字符串切割

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
 
 3,按字符串切割

 

Main() 
... {
      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
使用正则表达式有什么好处呢? 别着急,后面我们会看到它的独特之处。
下面介绍第4种方法。比如
    string str1="我*****是*****一*****个*****教*****师";
    如果我希望显示为:我是一个教师, ,如何作呢? 我们可以使用下面代码:
 
 
      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()); 

 

这里通过"[*]+" 巧妙的完成了我们的目标。
 
 
原文出处

 

 

 

 

 

c#字符串以特定字符串进行分割

看到这个题目可能有点晕,一般我们截取字符串是用split以字符进行分割的(当然也用字符数组)。

比如:

 1: using System;
 2: 
 3: namespace 字符串截取Demo
 4: {
 5: class MainClass
 6: {
 7: public static void Main (string[] args)
 8: {
 9: string s="1$cjlovefl$abcdefghicjloveuu$sdfcserrr";
 10: string[] bit=s.Split('c');//用c进行分割 
 11: foreach(string i in bit)
 12: {
 13: Console.WriteLine(i.ToString());
 14: }
 15: 
 16: }
 17: }
 18: }

截图:

字符串分割

 

    但是我要以字符串进行分割呢,比如我要以“cjlovefl”进行分割怎么办,可惜split的方法重载中没有已字符串做参数的方法。没办法,只能用其他办法了。

    我们用正则表达式来截取好了。

例如:

 1: using System;
 2: using System.Text.RegularExpressions;
 3: 
 4: namespace 字符串截取Demo
 5: {
 6: class MainClass
 7: {
 8: public static void Main (string[] args)
 9: {
 10: string s="1$cjlovefl$abcdefghicjloveuu$sdfcserrr";
 11: Regex regex=new Regex("cjlovefl");//以cjlovefl分割 
 12: string[] bit=regex.Split(s);
 13: foreach(string i in bit)
 14: {
 15: Console.WriteLine(i.ToString());
 16: }
 17: 
 18: }
 19: }
 20: }

截图:

字符串分割1

 

    好了,假如我们要以“$cjlovefl$”分割怎么办啊。很多人想当然的说直接用这个字符串放进去就行了啊。你可以去试试,没用的,在正则表达式中$有特殊的意义,必须转义掉,所以必须用“\\$cjlovefl\\$”进行匹配。

 

例如:

 1: using System;
 2: using System.Text.RegularExpressions;
 3: 
 4: namespace 字符串截取Demo
 5: {
 6: class MainClass
 7: {
 8: public static void Main (string[] args)
 9: {
 10: string s="1$cjlovefl$abcdefghicjloveuu$sdfcserrr";
 11: Regex regex=new Regex("\\$cjlovefl\\$");//以$cjlovefl$分割 
 12: string[] bit=regex.Split(s);
 13: foreach(string i in bit)
 14: {
 15: Console.WriteLine(i.ToString());
 16: }
 17: 
 18: }
 19: }
 20: }

截图:

字符串分割2

 

 

注:当然在javascript中split完全可以以字符串分割,好像java也可以。

 

 

 

 

 

 

 

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值