C#常用字符串方法使用

作者:自由 2021/2/11 12:01:45
C#常用字符串方法使用,例如:截取字符串、替换字符串、字符串转数组、字符串转大写、字符串转小写等功能

一.简介

 

作为程序员,写代码的过程中少不了对字符串的处理,我们经常会用来存储字符数据,例如用户名、邮箱地址、商品等信息都需要通过使用字符串类型来存取,我们几乎做项目用的比较频繁的也是字符串的处理,熟练的掌握好字符串的处理会大大提高我们在编程过程中的工作效率。

 

在各种开发语言字符串的处理都大同小异,下面我们看一下在 C# 语言中提供了对字符串类型数据操作的方法,例如截取字符串中的内容、查找字符串中的内容等。常用的字符串操作包括获取字符串的长度、查找某个字符在字符串中的位置、替换字符串中的内容、拆分字符串等。

 

二.字符串的使用方法

 

1.连接两个字符串

字符串的连接可以直接用“+”直接连接,同时也可以使用string.Concat方法来连接,一般数据少的情况下使用“+”连接就行。

string str = "测试字符串用法,test";
Console.WriteLine("字符长度: {0}", str.Length);
 // 连接两个字符串
Console.WriteLine("连接字符串: {0}", "测试字符串连接01" + "十分钟空间www.tmspace.cn");
Console.WriteLine("连接字符串: {0}", string.Concat("测试字符串连接02", "十分钟空间www.tmspace.cn"));
Console.WriteLine("连接3个字符串: {0}", string.Concat("测试字符串连接02", "0002", "0003"));

 

2. 数据拆分成用符号隔开的字符串和根据分隔符组成一个字符串

主要作用是把数据拆分成用符号隔开的字符串,一般我会前台返回给后台一个数组,然后后台拆分成用逗号隔开的字符串存到数据库里,或者用作sql语句中的in条件。根据每个人的情况来使用,一般这种方式用来存取1对多关系的数据。用逗号隔开可以取得的时候,在用split把数据组合成数组。

string[] array = { "笔记本", "键盘", "鼠标", "十分钟空间www.tmspace.cn" };
Console.WriteLine("把数组转换为符号隔开的字符串: {0}", String.Join(",", array));
Console.WriteLine("连接接一个字符串数组中的指定位置开始的指定元素,使用指定的分隔符分隔每个元素。: {0}", String.Join(",", array, 1, 2));

 //返回一个字符串数组
Console.WriteLine("替换字符串中的字符: {0}", "123,456,789".Split(','));
 
3.对比字符串 左边的大返回1右边的大返回-1

对比字符串一般是在我们存取的数据要比较大小的时候用,一般我用数字类型来区分,例如int类型。很少用字符串,不过也有这种情况,存商品编码的时候,商品编码规则是字母加数字,这种情况下我们可能会用到字符串比较大小,来确定数据。

// 对比字符串 左边的大返回1右边的大返回-1
Console.WriteLine("对比字符串: {0}", "1".CompareTo("2"));
Console.WriteLine("对比字符串: {0}", string.Compare("1", "2"));
// 对比字符串是否支持大小写,true不支持大小写,false支持大小写
Console.WriteLine("对比字符串区分大小写: {0}", string.Compare("b", "B", true));
Console.WriteLine("对比字符串区分大小写: {0}", string.Compare("b", "B", false));

 

4.判断字符串中是否包含某个字符串

 

这个是我们经常会使用的方法,比如判断这个订单是否包含字符串K,或者判断这个字符串的首字母是什么,结尾字符是什么,都是我们经常使用的,一般大家会截取第一个或者截取最后一个来判断,这样会让你写很多冗余的代码,C#有单独的函数来处理字符串首字母和结尾字符是否包含某个字符。

// 判断字符串中是否包含某个字符串
Console.WriteLine("判断字符串中是否包含某个字符串: {0}", "abcdef".Contains("f"));
Console.WriteLine("复制字符串的值: {0}", string.Copy("test"));
// 判断字符的最后一位是否包含某个字符串
Console.WriteLine("判断字符的最后一位是否包含某个字符串: {0}", "十分钟空间www.tmspace.cn,".EndsWith(","));
// 判断字符的第一位是否包含某个字符串
Console.WriteLine("判断字符的第一位是否包含某个字符串: {0}", "十分钟空间www.tmspace.cn,".StartsWith(","));

 

5.对比两个字符串是否相同

一般我们用来判断条件用,比如:判断是否是这个品番或者是这个订单号,后台可以使用equals来判断

// 对比两个字符串是否相同
Console.WriteLine("对比两个字符串是否相同: {0}", "十分钟空间www.tmspace.cn,".Equals(","));
Console.WriteLine("对比两个字符串是否相同: {0}", string.Equals("十分钟空间www.tmspace.cn", "十分钟空间www.tmspace.cn"));

 

6.把指定字符串中一个或多个格式项替换为指定对象的字符串表示形式。

现在用linq可能大家很少用拼接字符串传值,之前写传统的sql语句的时候,在C#里写好一个sql语句,里面的传值,我们会用这个方式把变量的值拼接到字符串里

 Console.WriteLine("对比两个字符串是否相同: {0}", string.Format("12312312321323123{0}","wwww"));

 

7.查找字符在字符串中出现的位置

这个很少用,一般用的不多,只是限定非常死的必须第几个是字符是什么的时候才用,有些人用来判断这个字符串是否包含这个字符,相当于IndexOf的值大于-1肯定就是存在,不过我一般用包含那个函数

//字符在当前字符串中第一次出现的索引,索引从 0 开始
Console.WriteLine("字符串的位置从0开始: {0}", "123456789".IndexOf('4'));// 查到了返回位置
Console.WriteLine("字符串的位置从0开始: {0}", "123456789".IndexOf('e'));// 查不到返回-1

Console.WriteLine("字符从该字符串中指定字符位置开始搜索第一次出现的索引,索引从 0 开始。: {0}", "123456789".IndexOf('4', 2));// 查到了返回位置
Console.WriteLine("字符从该字符串中指定字符位置开始搜索第一次出现的索引,索引从 0 开始。: {0}", "123456789".IndexOf('4', 4));// 查到了返回位置
//返回指定字符串在该实例中第一次出现的索引,索引从 0 开始
Console.WriteLine("字符串在字符串的位置从0开始: {0}", "123456789".IndexOf("456"));// 查到了返回位置
Console.WriteLine("字符串在字符串的位置从0开始: {0}", "123456789".IndexOf("4536"));// 查不到返回-1

Console.WriteLine("字符串从该字符串中指定字符位置开始搜索第一次出现的索引,索引从 0 开始。: {0}", "123456789".IndexOf('4', 2));// 查到了返回位置
Console.WriteLine("字符串从该字符串中指定字符位置开始搜索第一次出现的索引,索引从 0 开始。: {0}", "123456789".IndexOf('4', 4));// 查到了返回位置

//字符在当前 string 对象中最后一次出现的索引位置,索引从 0 开始
Console.WriteLine("字符串的位置从0开始: {0}", "123456789".LastIndexOf('4'));// 查到了返回位置
Console.WriteLine("字符串的位置从0开始: {0}", "123456789".LastIndexOf("4"));// 查到了返回位置

 

8.根据索引插入字符串

相当于拼接字符串,只是根据你指定第几个字符后面插入字符串

//指定的字符串被插入在当前 string 对象的指定索引位置。
Console.WriteLine("指定的字符串被插入在当前 string 对象的指定索引位置。", "22".Insert(1, "33"));

 

9. 判空

这个没有什么可说的,几乎我们每个功能都会需要这个函数,判断这个字符串是否为空,如果为空就不添加这个条件,这种操作很常见。

// 判空
Console.WriteLine("判空", string.IsNullOrEmpty("33"));

 

10.移除字符串Remove

和添加字符串差不多,有添加就会有移除,相当于移除指定索引后或者索引范围内的字符串

//移除当前实例中的所有字符,从指定位置开始,一直到最后一个位置为止,并返回字符串。
Console.WriteLine("移除当前实例中的字符: {0}", "123456789".Remove(3));
Console.WriteLine("从当前字符串的指定位置开始移除指定数量的字符,并返回字符串: {0}", "123456789".Remove(3,3));

 

11.替换字符串Replace

很常见的一个函数,通常有特殊符号需要替换的时候使用,或者替换空格、换行符之类的

// 替换字符串中的字符
Console.WriteLine("替换字符串中的字符: {0}", "123456789".Replace('3', '1'));
Console.WriteLine("替换字符串中的字符: {0}", "123456789".Replace("34", "43"));

 

12.把字符串转换为小写并返回。

// 把字符串转换为小写并返回。
Console.WriteLine("把字符串转换为小写并返回: {0}", "ABC,DEF,HIGK".ToLower());

 

13.把字符串转换为大写并返回

// 把字符串转换为大写并返回。
Console.WriteLine("把字符串转换为大写并返回: {0}", "abc,def,higk".ToUpper());

 

14.移除当前 String 对象中的所有前导空白字符和后置空白字符

Console.WriteLine("把字符串转换为大写并返回: {0}", "ab       gk".Trim());

截取字符串

替换字符串

字符串转数组

字符串转大写

字符串转小写

评论: