学习C#:day8 2023/9/13

一、字符串

1、字符串属性

*.Length:获取字符串长度
例如:string str01 = "asdfsadf";
            string str02 = "你好你好";
            Console.WriteLine("asdfsadf字符段长度:"+ str01.Length );
            Console.WriteLine("你好你好:" + str01.Length);
            //一个汉字占两位,字符串长度和占位无关
            Console.WriteLine(str01);
            Console.WriteLine(str02);

2、字符串常用方法

1)判空

IsNullOrEmpty:判断字符串是否为Null或者空。
例如://如果为Null或者空,返回真;否则为假。
            string str141 = "";//空字符串(“”)是占内存空间的
            string str151 = null;//null是不占内存空间的
            Console.WriteLine(string.IsNullOrEmpty(str141));
            Console.WriteLine(string.IsNullOrEmpty(str151));

2)大小写转换
< 1 >ToUpper()转大写字母
 

例如:string str1 = "addfssd";
       Console.WriteLine(str1 .ToUpper ());

< 2 >ToLower()转小写字母

例如: string str2 = "ADDFSSD";
        Console.WriteLine(str2.ToLower());

< 3 >大小写转换(普遍方法)

例如://输入字符串,如果是大写字母,则转小写字母
           //A的ASCII码是65,a的ASCII码是97
            int c1 = Console.Read();
            if(c1>=65&&c1<=91)//A~Z
            {
                c1 = c1 + 32;//+32大写转小写,-32小写转大写
                Console.WriteLine((char)c1);
            }

3)判断
< 1 >用==判断

例如: string str331 = "12312";
            string str332 = "12312";
            if (str331==str332)
            {
                Console.WriteLine("两个相等");
            }
            else
            {
                Console.WriteLine("两个不相等");
            }

< 2 >Equals():比较两个字符串是否相同,相同返回真,否则返回假。

例如://字符串相同返回真,否则返回假
            string str3 = "123";
            string str4 = "123";
            string str5 = "asdf";
            Console.WriteLine(str3.Equals(str4));
            Console.WriteLine(str3.Equals(str5));

< 3 >Compare():比较字符串是否相同,返回-1,0,1

例如:string str1 = "123";
            string str2 = "12345";
            string str3 = "123456";
            string str4 = "12345";
            Console.WriteLine(string.Compare(str1,str2));//-1
            Console.WriteLine(string.Compare(str3, str2));//1
            Console.WriteLine(string.Compare(str2, str4));//相同0

< 4 >CompareTo(): 进行比较,并返回一个整数,该整数指示此实例的值是小于、等于还是大于

例如:string str11 = "撒旦飞";
            string str21 = "撒";
            string str31 = "撒旦飞";
            string str41 = "撒旦飞撒旦飞";
            Console.WriteLine(str11.CompareTo(str21));//不相同 1
            Console.WriteLine(str11.CompareTo(str31));//相同 0
            Console.WriteLine(str11.CompareTo(str41));//不相同-1
            /*
             * 原理:从两个字符串的第一个字符开始逐个进行比较(按字符的ASCII值进行大小比较),
             * 直到出现不同的字符或遇到‘’为止。
             * 如果全部字符都相同,就认为两字符串相等,返回0;
             * 若出现了不相同的字符,则以第一个不相同的字符比较结果为准,若前者字符大于后者,则返回1,否则返回 - 1.
            */

4)处理
< 1 >Split():分割字符串,返回字符串类型的数组

例如: string str51 = "账号-kubll-密码-123456";
            string[] strArr = str51.Split('-');//注意里面填的是字符
            foreach (string item in strArr)
            {
                Console.WriteLine(item);
            }

<2>Substring(index,number):截取字符串,返回截取后的子串

例如://从第index位后(注意这个后),截取number个字符
            string str61 = "你好呀,我是张三,你是谁呀?";
            Console.WriteLine(str61.Substring(0, 1));
            Console.WriteLine(str61.Substring(2, 1));
            Console.WriteLine(str61.Substring(2, 2));

< 3 >Replace("旧字符串","新字符串"):将字符串中的某个字符串替换成一个新的字符串

例如://返回新的字符串
            string str111 = "asdfsdfsdf";
            Console.WriteLine(str111.Replace("fs", "你好"));
            //打印机效果(主要是思想)
            string str62 = "你好呀,我是张三,你是谁呀?";
            string str63 = "";
            int i = 0;
            while(str63 .Length !=str62 .Length )
            {
                //间隔0.5秒
                str63 = str62.Substring(0, i);
                i++;
            }

< 4 >Insert(n,*):插入字符串(第n位后面插入*)

例如:string str141 = "asdfsadfasdf";
           Console.WriteLine(str141.Insert(3, "-"));//输出“"asd-fsadfasdf"

< 5 >Remove(n):移除字符串(移除第n位后面的字符串)

例如:string str1 = "123456789";
            string str2 = str1.Remove(5);
            string str3 = str1.Remove(1);
            Console.WriteLine(str2);//输出:12345
            Console.WriteLine(str3);//输出:1

< 6 >Copy()复制字符串

例如:string str98 = "asdfasdf";
            Console.WriteLine(string.Copy(str98));

< 7 >CopyTo():复制到

例如:string strSource = "changed";
            char[] destination = new char[20];
            strSource.CopyTo(0, destination, 0, strSource.Length);
            //sourceIndex Int32 要复制的此实例中第一个字符的索引。
            //destination Char[] 此实例中的字符所复制到的 Unicode 字符数组。
            //destinationIndex Int32 destination 中的索引,在此处开始复制操作。
            //count Int32 此实例中要复制到 destination 的字符数。
            foreach (var item in destination)
            {
                Console.WriteLine(item);
            }

< 8 >拼接两个string对象:+和string.Concat()

例如:string str71 = "asdf";
            string str72 = "你好呀";
            //+:拼接两个string对象1
            string str73 = str71 + str72;
            Console.WriteLine(str73);
            //string.Concat():拼接两个string对象2
            string str74 = string.Concat(str71, str72);
            Console.WriteLine(str74);

< 9 >PadLeft(n,str3):填充字符串

例如://(n:填充后的字符长度,str3所要填充的字符,如果省略,则填充空格符号)
            string str2 = "123";
            char str3 = 'J';
            str2 = str2.PadLeft(10, str3);
            Console.WriteLine(str2);

5)查找某字符在字符串中的索引(基本用不到)
< 1 >IndexOf():查找某个字符串在字符串中第一次出现的位置

例如://返回所在的索引位置值(索引从0开始)。如果没有找到,返回-1。
            string str81 = "qwertyyui";
            Console.WriteLine(str81.IndexOf("rt"));
            Console.WriteLine(str81.IndexOf("qw"));

< 2 >LastIndexOf():查找某个字符串在字符串中最后一次出现的位置

例如://返回所在的索引位置值。如果没有找到,返回-1。
            string str82 = "qwertyyuiui";
            Console.WriteLine(str82.LastIndexOf("ui"));

6)判断是否包含
< 1 >判断字符串的开始结束(基本用不到)
1.StartsWith():判断是否以...字符串开始

例如://如果是,返回真;如果不是,返回假。
            string str101 = "asdfasdfsdfasdf";
            Console.WriteLine("as开头:" + str101.StartsWith("as"));
            Console.WriteLine("asf开头:" + str101.StartsWith("asf"));


2.EndsWith():判断是否以...字符串结束

例如://如果是,返回真;如果不是,返回假。
            string str102 = "asdfasdfsdfasdf";
            Console.WriteLine("as结束:" + str102.EndsWith("as"));
            Console.WriteLine("df开头:" + str102.EndsWith("df"));

< 2 >Contains():判断某个字符串中是否包含指定的字符串(会用到)

例如://如果包含返回真,否则返回假。
            string str121 = "123456789";
            Console.WriteLine("str121中是否存在45字符串:" + str121.Contains("45"));

7)去空格
< 1 >Trim():去掉字符串中前后空格

例如://返回处理后的字符串。
            string str131 = " sdf s fda ssdf asd  sd ";
            Console.WriteLine(str131.Trim());//输出“sdf s fda ssdf asd  sd”

< 2 >TrimStart():去掉字符串开始前的空格

例如://返回处理后的字符串。
            string str132 = " sdf s fda ssdf asd  sd ";
            Console.WriteLine(str132.TrimStart());//输出“sdf s fda ssdf asd  sd ”

< 3 >TrimEnd():去掉字符串结束后的空格

例如://返回处理后的字符串。
            string str133 = " sdf s fda ssdf asd  sd ";
            Console.WriteLine(str133.TrimEnd());//输出“ sdf s fda ssdf asd  sd”

3、格式化输出

例如://1、
            string str1 = "1";
            string str2 = "2";
            string str3 = "3";
            Console.WriteLine("{0}+{1}={2}", str1, str2, str3);
            Console.WriteLine("{2}+{1}={0}", str1, str2, str3);
            //2、
            Decimal pricePerOunce = 17.36m;
            String s = String.Format("The current price is {0} per ounce.", pricePerOunce);
            Console.WriteLine(s);

四舍五入保留两位小数输出
例如:double point = 3.147;
           Console.WriteLine("\n四舍五入保留两位小数输出:" + point.ToString("0.00"));

二、StringBuilder学习

1、创建

例如://注意:StringBuilder依赖System.Text命名空间
            StringBuilder sb = new StringBuilder();//创建一个对象

2、处理

1).Append(5)追加数据

例如:sb.Append(5);
            for(int i=0;i<=10;i++)
            {
                sb.Append(i);
            }
            Console.WriteLine(sb);

2).ToString():将sb转成字符串形式

如:sb.ToString();

3).Claer():清空sb中的数据

如:sb.Clear();

3、测试效率

Stopwatch类:
             Stopwatch,秒表计时器,用来记录程序运行的时间
             注意:Stopwatch依赖System.Diagnostics命名空间

1)字符串1~50000使用时间

例如:string str1 = "";
            Stopwatch swStr = new Stopwatch();
            swStr.Start();//计时器开始
            for(int i=0;i<=50000;i++)
            {
                str1 += i;
            }
            swStr.Stop();//计时器结束
            Console.WriteLine("swStr:"+swStr.Elapsed);//开始到结束之间的时长

2)可变字符串1~50000使用时间

例如:StringBuilder sb1 = new StringBuilder();
            Stopwatch sw2SB = new Stopwatch();
            sw2SB.Start();
            for (int i = 0; i <= 50000; i++)
            {
                sb1 .Append (i);
            }
            sw2SB.Stop();//计时器结束
            Console.WriteLine("sw2SB:" + sw2SB.Elapsed);//开始到结束之间的时长

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

顾筱黎

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值