LOGO OA教程 ERP教程 模切知识交流 PMS教程 CRM教程 开发文档 其他文档  
 
网站管理员

C#中 StringBuilder 用法和 String 区别

admin
2024年7月24日 23:4 本文热度 611

前言

C# 中的字符串类型是不可变的,因此在其创建后就无法更改其内容。如果我们在创建字符串类型对象后尝试修改该对象将导致在内存中创建该对象的新实例。此外,如果字符串频繁更改,可能会出现性能问题。对于需要修改字符串,可以使用 StringBuilder 来解决,因为与字符串不同,它能够动态扩展内存以适应任何操作。本文将介绍它的用法。

StringBuilder

1、实例:

StringBuilder 实例化相当简单。使用 new 关键字创建类的对象,就可以实例化。根据需求选择对应的构造函数。
// 创建的是空白可变字符串对象,不包含任何内容StringBuilder stringBuilderEmpty = new StringBuilder();// 根据字符串的内容,来创建可变字符串对象StringBuilder stringBuilder = new StringBuilder("Hello, ");

2、转换:

使用 StringBuilder 不会直接返回字符串,需要我们使用ToString()方法来转换为字符串。
// 创建可变字符串对象StringBuilder stringBuilder = new StringBuilder("李明,您好!");// 输出Console.WriteLine(stringBuilder.ToString());

3、追加:

使用Append 方法,将新字符串追加到现有 StringBuilder 的末尾。其长度和空间自动增加。
// 创建可变字符串对象StringBuilder stringBuilderTime = new StringBuilder("现在的时间是:");// 追加字符stringBuilderTime.Append(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));// 转换为字符串string  dateTimeNow = stringBuilderTime.ToString();// 输出 dateTimeNow - 现在的时间是:2024-06-15 17:56:36Console.WriteLine("{0} - {1}", nameof(dateTimeNow), dateTimeNow);

3.1、追加终止符:

使用 AppendLine 方法可以方便地在 StringBuilder 的末尾追终止符。
// 创建可变字符串对象StringBuilder stringBuilderTime = new StringBuilder("现在的时间是:");// 追加字符stringBuilderTime.Append(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));// 追加终止符stringBuilderTime.AppendLine();// 追加字符stringBuilderTime.Append("今天是星期: ");stringBuilderTime.Append(DateTime.Now.DayOfWeek);// 转换为字符串string dateTimeNow = stringBuilderTime.ToString();// 现在的时间是:2024-06-15 18:13:19// 今天是星期: SaturdayConsole.WriteLine(dateTimeNow);

3.2、追加格式:

AppendFormat 方法允许我们将字符串所需的格式作为输入传递。
// 创建可变字符串对象StringBuilder stringBuilderTime = new StringBuilder("现在的时间是:");// 加终止符stringBuilderTime.Append(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));// 加终止符stringBuilderTime.AppendLine();// 使用格式化追加stringBuilderTime.AppendFormat("今天是星期: {0}", DateTime.Now.DayOfWeek);// 转换为字符串string dateTimeNow = stringBuilderTime.ToString();// 现在的时间是:2024-06-15 18:13:19// 今天是星期: SaturdayConsole.WriteLine(dateTimeNow);

4、插入:

Insert  方法将指定对象的字符串插入到 StringBuilder 实例中的指定字符位置。
// 定义变量string name = "李明,";// 创建可变字符串对象StringBuilder stringBuilder= new StringBuilder("您好!");// 在 StringBuilder 实例的0位置开始插入变量的值stringBuilder.Insert(0, name);// 输出 李明,您好!Console.WriteLine(stringBuilder.ToString());

5、替换:

Replace 方法将 StringBuilder实例中出现的所有指定字符或字符串替换为其他的指定字符或字符串。
// 创建可变字符串对象StringBuilder stringBuilder = new StringBuilder("李明,您好!");// 替换stringBuilder.Replace("李明", "赵小山");// 输出 赵小山,您好!Console.WriteLine(stringBuilder.ToString())

6、移除:

Remove 方法从 StringBuilder 中删除预定数量的字符。开始索引和要删除的字符数是输入参数。
// 创建可变字符串对象StringBuilder stringBuilder = new StringBuilder("李明,您好!");// 从 StringBuilder 第3个字符开始移除3个字符stringBuilder.Remove(3,3);// 输出Console.WriteLine(stringBuilder.ToString());

7、清除:

Clear 方法用于删除 StringBuilder 对象的所有字符。
string name = "李明,";// 创建可变字符串对象StringBuilder stringBuilder= new StringBuilder("您好!");// 在 StringBuilder 实例的0位置开始插入变量的值stringBuilder.Insert(0, name);// 删除所有字符stringBuilder.Clear();

区别

字符集合可以使用字符串和 StringBuilder 进行保存或存储。C# 的 string 与 StringBuilder 之间存在一些差异。
1、string 创建后不可改变,如改变则为新实例;StringBuilder 创建后可改变。
2、在处理大字符串字符串时,StringBuilder 优于 string。否则可以忽略不计。
3、命名空间不同,StringBuilder 在 System.Text;string 在 System.String。

小结

以上是 StringBuilder 的用法全部内容及与 String 的区别,希望对大家了字符的处理带来一些帮助。


该文章在 2024/7/24 23:06:12 编辑过
关键字查询
相关文章
正在查询...
点晴ERP是一款针对中小制造业的专业生产管理软件系统,系统成熟度和易用性得到了国内大量中小企业的青睐。
点晴PMS码头管理系统主要针对港口码头集装箱与散货日常运作、调度、堆场、车队、财务费用、相关报表等业务管理,结合码头的业务特点,围绕调度、堆场作业而开发的。集技术的先进性、管理的有效性于一体,是物流码头及其他港口类企业的高效ERP管理信息系统。
点晴WMS仓储管理系统提供了货物产品管理,销售管理,采购管理,仓储管理,仓库管理,保质期管理,货位管理,库位管理,生产管理,WMS管理系统,标签打印,条形码,二维码管理,批号管理软件。
点晴免费OA是一款软件和通用服务都免费,不限功能、不限时间、不限用户的免费OA协同办公管理系统。
Copyright 2010-2024 ClickSun All Rights Reserved