优秀的编程知识分享平台

网站首页 > 技术文章 正文

零基础转型C#软件工程师-16常用字符串的方法

nanyue 2024-08-06 18:06:01 技术文章 4 ℃

一、字符串索引位置和长度获取

  static void Test2()
        {
            string data = "012345678&abcde";
            int dataLocation=data.IndexOf("&");
            Console.WriteLine(dataLocation);//结果是9,因为索引从0开始,到&前的位置。&不算
            int dataLocation1 = data.IndexOf("&abc");
            Console.WriteLine(dataLocation1);//结果是也是9,也就是说可以单独查一个字符,也可以几个组合。也是取最前面的
            int dataLocation2=data.IndexOf("qq");//这个值是负1,就是没有搜索到
            Console.WriteLine(dataLocation2);
            Console.WriteLine("------------");
            Console.WriteLine(data.Length);//截取字符串的长度,如果加空格,空格也占1格的

        }

二、字符串区间的截取

 static void Test3()
        {
            string data = "012345678&abcde";
            string dataRange = data.Substring(0,9);
            Console.WriteLine(dataRange);//结果是012345678
            string dataRange1 = data.Substring(0, data.IndexOf("&"));
            Console.WriteLine(dataRange1);///结果是也是012345678 ,也就是说后面不一定是数字,也可以是截取字符串的位置
            string dataRange2 = data.Substring(data.IndexOf("&")+1);
            Console.WriteLine(dataRange2);///结果是8&abcde 也就是说从  & 这个字符后面所有的内容
        }
             //后期代码越来越复杂,可能不能在一个主程序内写,要分出好几个子程序。
            //哪里不明白的地方
            //可以Add_VChatId:"jingjianwang888888"

三、字符串相等的判断

字符串比较和值类型

     static void Test4()
        {
            string  data1 = "ABCD";
            string data2 = "ABCD";
            string data3 = "abcd";
            string data4 = "DCBA";
            //比较运算符
            Console.WriteLine(data1==data2);//输出为Ture
            Console.WriteLine(data1==data3);//输出为False
            //比较字符忽略大小写,需要同时转成成大写或者小写
            Console.WriteLine(data1.ToUpper()==data3.ToUpper());//这个就是Ture
            Console.WriteLine(data1.Equals(data2) );//用Equals比较方法也可以
            //==或者Equals方法默认只能比较“值类型”或者“字符串“类型
        }

五、分割方法Split()方法

分割字符串,返回字符串方法

 static void Test1()
        {
            string data = "AB CD EF HJ";//使用空字符分隔的字符串
            string[] dataArray = data.Split();//使用空格字符分隔不需要参数
            string data1 = "AB,CD,EF,HJ";
            string[] dataArray1 = data1.Split(',');//这个就要写参数了,不写的话不会报错,但是找不到空格这个字符,所以会把源代码直接输出
            foreach (var item in dataArray)
            {
                Console.WriteLine(item);
            }
            Console.WriteLine("------------");
            foreach (var item in dataArray1)
            {
                Console.WriteLine(item);
            }

        }

六、组合string.Join()方法:

组合字符串

   static void Test5()
        {
            string[] data = { "AB", "CD", "EF" };
            string dataArray=string.Join("_", data);//这个地方用啥连接的就就是啥
            Console.WriteLine( dataArray);//结果AB_CD_EF
        }

七、替换Replace

 static void Test6()
        {
            string data = "AB,CD,EF";
            string data1 = data.Replace(",","_");//把","替换”_“
            Console.WriteLine(data1);//结果AB_CD_EF
        }

八、字符串 格式化扩展

数学格式化为字符串时,格式代码通常是象‘X0’这样的格式。X是格式化标识符,0是精度标识符。格式标识符号共有9种,它们代表了大多数常用的数字格式。

字母

含义

C或c

Currency 货币格式

D或d

Decimal 十进制格式(十进制整数,不要和.Net的Decimal数据类型混淆了)

E或e

Exponent 指数格式

F或f

Fixed point 固定精度格式

G或g

General 常用格式

N或n

用逗号分割千位的数字,比如1234将会被变成1,234

P或p

Percentage 百分符号格式

R或r

Round-trip 圆整(只用于浮点数)保证一个数字被转化成字符串以后可以再被转回成同样的数字

X或x

Hex 16进制格式


九、字符串拼接

9.1普通拼接方法:

      static void Test7()
        {
            string data = string.Empty;
            data += "AB";
            data += "CD";
            data += "EF";
            Console.WriteLine(data);
            //结果是ABCDEF,这种方法用到少还行,经常用会造成内存浪费
        }

9.2StringBuilder类的使用(更加高效)

Append 在结尾追加

Insert 在知道位置插入指定字符串

Remove 移除指定字符串

AppendFormat追加的同时格式化

  static void Test8()
        {
            StringBuilder sb = new StringBuilder();
            sb.Append("AB");
            sb.Append("CD");
            sb.Append("EF");
            string sb1= sb.ToString();
            //把sb这个类变成string类型,
            //虽然你直接用 Console.WriteLine(sb)输出结果;
            //和下面结果是一样的,但是没法用啊,所以必须变成字符串在输出
            Console.WriteLine(sb1);
            sb.Insert(1, "aa");
            Console.WriteLine(sb.ToString());//输出结果AaaBCDEF,第一个是0开始,之后加入aa
            sb.Remove(1, 2);
            Console.WriteLine(sb.ToString());//输出结果ABCDEF,又把刚才插入的2个删除了
            sb.Clear();
            Console.WriteLine(sb.ToString());//输出什么都没有,清除了
        }
最近发表
标签列表