网页浏览总次数

星期一, 二月 26, 2024

C#学习笔记——字符串处理

C#字符串特点及其常用方法 

//字符串特点

            //引用类型 数据储存在堆空间 在栈空间中存储了该数据的引用地址

            //值不可变  字符串重新赋值 旧值不销毁 而是开辟新空间

            //字符串可以看成只读的char[]

//字符串常用方法

            string s = "Far";

            Console.WriteLine(s.ToUpper());//字符全大写

            Console.WriteLine(s.ToLower());//字符全小写

            string s2 = "zgy";

            Console.WriteLine(s2.Equals(s));//比较是否相同 

            string s3 = "F a r";

            foreach(string str in s3.Split(' '))//使用字符分割 

            {

                Console.WriteLine(str);

            }

            Console.WriteLine(s.Substring(1));//从角标1开始截取到最后

            Console.WriteLine(s.Substring(0,1));//从角标0开始截取1个字符

            Console.WriteLine(s.IndexOf("F"));//查找子字符串在字符串中第一次出现的角标 从前向后查找

            Console.WriteLine(s.LastIndexOf("Fa"));//查找子字符串在字符串中第一次出现的角标 从后向前查找 

            Console.WriteLine(s.StartsWith("F"));//判断以什么字符串开头

            Console.WriteLine(s.EndsWith("ar"));//判断以什么字符串结尾

            Console.WriteLine(s2.Replace("zgy", "Far"));//替换字符串

            Console.WriteLine(s.Contains("ar"));//判断一个字符串中是否包含子串 

            string s4 = "    F  a r  ";

            Console.WriteLine("o" + s4.Trim() + "o");//去掉字符串开始前和结束后的所有空格 

            Console.WriteLine("o" + s4.TrimStart());//去掉字符串开始前的所有空格

            Console.WriteLine(s4.TrimEnd() + "o");//去掉字符串结束后的所有空格

            Console.WriteLine(string.IsNullOrEmpty(s));//判断字符串是否为null或者""


//字符串缺点

            //当需要对一个字符串重复赋值时,内存中会产生大量垃圾数据信息

            //当重复赋值频率很高时,执行效率就会降低 

            //StringBuilder 是一个类 引用类型 字符串的值可以改变 依赖using System.Text;

            StringBuilder sb = new StringBuilder();//创建一个对象

            sb.Append("Far");//追加数据 重载方法很多

            sb.Append(0528);

            sb.Append(true);

            Console.WriteLine(sb.ToString());//转换成string

            sb.Clear();//清空

            Console.WriteLine(sb);

            //效率测试

            //Stopwatch 秒表计时器 依赖using System.Diagnostics;

            Stopwatch sw = new Stopwatch();

            sw.Start();//计时器开启

            sw.Stop();//计时器结束

            Console.WriteLine(sw.Elapsed);//计时器开启到结束的时长

            //使用for循环测试 string 和StringBuilder的效率

            sw.Start();

            string stringTest = "";

            for(int i = 0; i < 100000; i++)

            {

                stringTest += i;

            }

            sw.Stop();

            Console.WriteLine(sw.Elapsed);//string时长

            sw.Start();

            StringBuilder sbTest = new StringBuilder();

            for (int i = 0; i < 100000; i++)

            {

                sb.Append(i);

            }

            sw.Stop();

            Console.WriteLine(sw.Elapsed);//sb时长


没有评论:

发表评论