C#字符串操作

C#字符串操作


一、字符串操作常用方法

  1. ToUpper():将字符转换成大写形式,仅对字母有效。返回值是转换后的字符串。
  2. ToLower():将字符转换成小写形式,仅对字母有效。返回值是转换后的字符串。
  3. Equals():比较两个字符串是否相同。传入字符串,相同返回真,不相同返回假。
  4. Split():分割字符串。传入字符数组,返回字符串数组
  5. Substring():截取字符串。返回截取后的子串。
  6. IndexOf():查找某个字符串在字符串中第一次出现的位置。 返回所在的索引位置值。如果没有找到,返回-1。
  7. LastIndexOf():查找某个字符串在字符串中最后一次出现的位置。 返回所在的索引位置值。如果没有找到,返回-1。
  8. startsWith():判断是否以…字符串开始。如果是,返回真;如果不是,返回假。
  9. EndsWith():判断是否以…字符串结束。如果是,返回真;如果不是,返回假。
  10. Replace():将字符串中的某个子串全部替换成一个新的字符串。返回新的字符串。
  11. Contains():判断某个字符串中是否包含指定的字符串。如果包含返回真,否则返回假。
  12. Trim():去掉字符串中前后空格。返回处理后的字符串。
  13. TrimEnd() 作用:去掉字符串结束后的空格。返回处理后的字符串。
  14. TrimStart() 作用:去掉字符串开始前的空格。返回处理后的字符串。
  15. IsNullOrEmpty() 作用:判断一个字符串是否为 Null 或者空。 如果为 null 或者空,返回真;否则返回假。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace StringTest
{
    class Program
    {
        static void Main(string[] args)
        {
            string s1 = "HelloWorld";

            //  1.ToUpper():字母全部大写
            Console.WriteLine(s1.ToUpper());     //HELLOWORLD
            
            //  2.ToLower():字母全部小写
            Console.WriteLine(s1.ToLower());     //helloworld
            
            //  3.Equals(String s):比较两字符串内容
            string s2 = "jojo";
            Console.WriteLine(s1.Equals(s2));    //false
            
            //  4.Split():分割字符串
            string s3 = "中国|河南|郑州";
            char[] chs = { '|' };
            string[] s4 = s3.Split(chs);
            foreach (string s in s4)
            {
                Console.WriteLine(s);       //依次打印三行:中国,河南,郑州
            }

            //  5.Substring():截取字符串
            string s5 = s1.Substring(0, 5);     //Hello
            string s6 = s1.Substring(5, 5);     //World
            Console.WriteLine(s5);
            Console.WriteLine(s6);

            //  6.IndexOf():查找子串第一次出现位置
            int index1 = s1.IndexOf("World");
            int index2 = s1.IndexOf("jojo");
            Console.WriteLine(index1);   //5
            Console.WriteLine(index2);   //-1

            //  7.LastIndexOf():查找子串最后一次出现位置
            int index3 = s1.LastIndexOf("l");   //8
            int index4 = s1.LastIndexOf("jojo");    //-1
            Console.WriteLine(index3);
            Console.WriteLine(index4);

            //  8.startWith():是否已...字符串开始
            Console.WriteLine(s1.StartsWith("Hello"));  //True
            
            //  9.EndsWith():是否已...字符串结束
            Console.WriteLine(s1.EndsWith("World"));    //True

            //  10.Replace():将字符串中某个字串全都替换成新的字符串
            string s7 = "HelloWorldHello";
            string s8 = s7.Replace("Hello", "jojo");
            Console.WriteLine(s8);          //jojoWorldjojo

            //  11.Contains():判断某个字符串中是否包含指定字串
            Console.WriteLine(s1.Contains("llo"));      //True

            //  12.Trim():去掉字符串中前后的空格
            string s9 = "   Golden Wind~  ";
            Console.WriteLine(s9.Trim());       //Golden Wind~(结束)

            //  13.TrimEnd():去掉字符串后面的空格
            Console.WriteLine(s9.TrimEnd());    //   Golden Wind~(结束)

            //  14.TrimStart():去掉字符串前面的空格
            Console.WriteLine(s9.TrimStart());  //Golden Wind~  (结束)

            //  15.isNullOrEmpty():判断字符串是否为null或者空
            Console.WriteLine(string.IsNullOrEmpty(s1));    //False
            string s10 = "";
            string s11 = null;
            Console.WriteLine(string.IsNullOrEmpty(s10));   //True
            Console.WriteLine(string.IsNullOrEmpty(s11));   //True

            Console.ReadKey();
        }
    }
}


二、字符串的特点

1.字符串是引用类型

字符串的数据是存储在堆空间,在栈空间中存储了该数据的引用地址。

2.字符串是不可变的

当你给一个字符串变量重新赋值时,旧值并没有销毁,而是重新开辟一块空间来存储新值。

3.字符串可以看做字符数组

使用字符串变量[下标]可以取字符串中指定的字符。也可以使用 for 循环变量数组。字符串变量.Length;可以取得字符串字符的个数。
在这里插入图片描述

三、StringBuilder

1.StringBuilder 简介

1.字符串的缺点

  当需要对一个字符串变量重复赋值时,在内存中会产生大量的垃圾数据信息。 当重复赋值的频率很高时,执行的效率就会降低。

2.StringBuilder 简介

  String,字符串;Builder,构建器;连起来是“字符串构建器”。 StringBuilder 类型的“字符串变量”,一直操作同一块内存空间,不会产生垃圾数据,且执行效率远远高于 string 类型的字符串变量。

2.StringBuilder 使用方法

PS:StringBuilder 依赖 System.Text 命名空间。

  • Append():追加数据
  • ToString():转换为字符串
  • sb.Clear():清空

3.StringBuilder效率

using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace TimeTest
{
    class Program
    {
        static void Main(string[] args)
        {
            Stopwatch sw = new Stopwatch();
            sw.Start();
            
            /*
            string s = "";
            for (int i = 0; i <= 100000; i++)
            {
                s += i;
            }
            sw.Stop();
            Console.WriteLine(sw.Elapsed);  //十万条数据     用时:16.73s
            */

            StringBuilder sb = new StringBuilder();
            for (int i = 0; i <= 100000; i++)
            {
                sb.Append(i);
            }
            sw.Stop();
            Console.WriteLine(sw.Elapsed);  //十万条数据     用时:0.01s

            Console.ReadKey();
        }
    }
}
补充:

1.Stopwatch 类

  Stopwatch,秒表计时器,用来记录程序运行的时间。

  注意:Stopwatch 依赖 System.Diagnostics 命名空间。

2.创建 Stopwatch 类型对象

  Stopwatch sw = new Stopwatch();

  sw.Start(); //计时器开始。

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

1.Stopwatch 类

  Stopwatch,秒表计时器,用来记录程序运行的时间。

  注意:Stopwatch 依赖 System.Diagnostics 命名空间。

2.创建 Stopwatch 类型对象

  Stopwatch sw = new Stopwatch();

  sw.Start(); //计时器开始。

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

  sw.Elapsed; //开始到结束之间的时长。





上述笔记根据课程:擅码网《C#初级课程之面向对象》记录

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值