C#字符串的分割与截取

写在前面:前几日入门了一点点python,发现里面的字符串截取很好用,就特意搜集了一下C#的字符串截取,整理一下,以备不时之需。

C#分割字符串

  1. 使用单个分隔符分割字符串,这里的输出结果即为
    1
    2
    3
    4
    5
    当使用‘,’号将其分割后,会去掉’,'这个符号,并且注意Split内的类型为char而不是string,所以使用单引号而不是双引号。
static void Main(string[] args)
        {
            string a = "1,2,3,4,5";
            string[] b = a.Split(',');
            foreach(string c in b)
                Console.WriteLine(c);
        }
  1. 使用多个分隔符分割字符串,这里的输出结果为
    1
    2
    3
    4+5
    当使用多个分隔符时,Split内是一个char数组,所有符合数组内的值都会被认作为分隔符。
static void Main(string[] args)
        {
            string a = "1,2,3-4+5";
            string[] b = a.Split(new char[2] { ',', '-' });
            foreach (string c in b)
                Console.WriteLine(c);
        }
  1. 使用单个或多个字符串来分割字符串,当string数组内仅有一个值时,即为单字符串分割,当数组内有多个值时,即为多字符串分割,这里输出的结果为
    20
    8
    9
    924
static void Main(string[] args)
        {
            string a = "201819192425";
            string[] b = a.Split(new string[] { "1","25" }, StringSplitOptions.RemoveEmptyEntries);
            foreach (string c in b)
                Console.WriteLine(c);
        }

C#截取字符串

  1. 截取字符串前i个字符,原理为显示前i个或删除i个及之后的字符串来得到一个新的字符串,这里b和c的值均为
    20181
    20181
static void Main(string[] args)
        {
            int i = 5;
            string a = "201819192425";
            string  b = a.Substring(0, i);             
            //显示从第0个到第i个字符,但不包括第i个
            string  c = a.Remove(i, a.Length - i);    
            //返回一个从i个开始删除,删除长度为总长度减i个(即删除i及之后的字符串)
            Console.WriteLine("{0}\n{1}",b,c);
        }
  1. 删去字符串前i个字符串,原理刚好与上个相反,这里b和c的值均为
    9192425
    9192425
 static void Main(string[] args)
        {
            int i = 5;
            string a = "201819192425";
            string b = a.Remove(0, i);           
            //删除第0个到第i个字符,但不包括第i个
            string c = a.Substring(i);
            //从第i个字符开始,显示到结尾
            Console.WriteLine("{0}\n{1}",b,c);
        }
  1. 截取字符串后i个字符,原理与<1>相似,这里b和c的值均为
    92425
    92425
static void Main(string[] args)
        {
            int i = 5;
            string a = "201819192425";
            string b = a.Substring(a.Length - i);
            //从第(总长度-i)个字符开始(即从倒数第i个开始),显示到结尾
            string c = a.Remove(0,a.Length-i);
            //删除第0个字符到第(总长度-i)个字符,返回余下的字符串
            Console.WriteLine("{0}\n{1}",b,c);
        }
  1. 删去字符串后i个字符串,原理刚好与上个相反,这里b和c的值均为
    2018191
    2018191
static void Main(string[] args)
        {
            int i = 5;
            string a = "201819192425";
            string b = a.Substring(0, a.Length - i);
            //从第0个字符开始,显示到(总长度-i)个字符,但不包括该字符
            string c = a.Remove(a.Length - i, i);
            //删除从第(总长度-i)个字符开始,长度为i的字符串,包括第(总长度-i)个字符
            Console.WriteLine("{0}\n{1}", b, c);
        }
  1. 截取字符串中从第i个开始,长度为j的字符串,原理在注释标明,这里b的值为
    18191
static void Main(string[] args)
        {
            int i = 3, j = 5;
            string a = "201819192425";
            string b = a.Substring(i - 1, j);
            //因为排序从0开始,所以(i-1),即从(i-1)个字符开始显示长度为j的字符串
            //就是从客观上从第三个开始显示到第(3+5-1)个字符,因为第i个也占一个长度
            Console.WriteLine(b);
        }
  1. 删除字符串中从第i个开始,长度为j的字符串,原理与上相反,代码仅需更改字符串b的赋值语句即可,这里b的值为
    2092425
static void Main(string[] args)
        {
            int i = 3, j = 5;
            string a = "201819192425";
            string b = a.Remove(i - 1, j);
            //删除第i个字符到第(i+j-1)个字符,并返回新字符串
            Console.WriteLine(b);
        }
  1. 替换字符串中的指定字符串,将所有符合要求的字符串片段均替换为另一个已给出的字符串片段,这里b的值为
    20186666662425
static void Main(string[] args)
        {
            string a = "201819192425";
            string b = a.Replace("19", "666");
            //每当旧串中出现'19'时,即替换为'666',并将返回的新串赋值于b
            //因为出现两次'19',所以也替换了两次'666'
            //两者长度不一样所以替换后长度也发生改变
            Console.WriteLine(b);
        }
  1. 删除字符串中的指定字符串,将所有符合要求的字符串片段均替换为一个空值,即可达到删除的效果,这里b的值为
    20182425
static void Main(string[] args)
        {
            string a = "201819192425";
            string b = a.Replace("19", "");
            //每当旧串中出现'19'时,替换为一个空串,可视为删除
            Console.WriteLine(b);
        }
  1. 截取字符串符合要求的最后一个值,这里按’9’对字符串进行分割,所以b的值为
    2425
static void Main(string[] args)
        {
            string a = "201819192425";
            string b = a.Substring(a.LastIndexOf("9") + 1);
            //显示按要求分割的最后一个值
            Console.WriteLine(b);
        }

结语

由于学识短浅,如有不足还望指正,一起努力,加油,谢谢,谢谢

发布了10 篇原创文章 · 获赞 18 · 访问量 2443

猜你喜欢

转载自blog.csdn.net/weixin_44122062/article/details/98181832