Unity开发之C#基础-String类型与StringBuilder类型

本文介绍了编程语言中的String类型及其常用方法,包括大小写转换、查找、截取、插入、删除和替换等操作。同时,讨论了String类型的不可变性导致的性能问题,并引入StringBuilder作为优化方案。StringBuilder允许在不创建新对象的情况下进行字符串动态管理,适用于频繁的字符串操作。最后,通过示例展示了StringBuilder的Append、AppendLine和AppendFormat方法在字符串连接中的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言

本篇,我们介绍编程语言中的一个比较重要的类型,String类型与StringBuilder。

制作不易还请各位一键三连哦!

String类型简介

String类型,又叫字符串类型,是编程语言中常见的引用类型之一,通常作用于对程序中的字符串的操作。它将一组字符视为一个整体进行处理,使用起来很像是一个字符数组。

上面我们说到,String类型是将一组字符视为一个整体进行处理,很像一个字符数组,那么我们前面讲解数组的时候,有提到数组中有Length属性可以知道数组的长度,还可以通过遍历的方式或者是索引(下标)的方式来查找数组中的单独的元素,那么我们现在可以尝试一下,字符串也就是字符数组,是否支持这些操作呢?
在这里插入图片描述

经过我们自己写出代码测试,发现这些操作都是可以的,测试结果如下:
在这里插入图片描述
需要我们注意的是,String类型中的索引长度是只读的,也就是不能修改的。
在这里插入图片描述

但实际上,字符串不单单只是作用于这些,字符串的妙用在于他为我们提供的许多方法,接下来我们就讲解一下一些常见的字符串方法

String类型方法

  1. 大小写字母转换
    在这里插入图片描述

  2. 查找字符在当前字符串中的位置
    在这里插入图片描述

  3. 字符串截取
    在这里插入图片描述

  4. 字符串插入
    在这里插入图片描述

  5. 字符串删除
    在这里插入图片描述

  6. 字符替换

    在这里插入图片描述

  7. 字符串比较
    如果两个字符串长度相同,且各个对于位置上的 字符也都相同,那么认为字符串是相等的。在这里插入图片描述
    比较规则:
    1. 如果s1和s2都为空字符串,那么返回整数0
    2. 比较s1的第一个字符a1和s2的第一个字符a2,如果相等,则继续比较s1和s2的剩 余子串,否则返回a1和a2的比较结果
    3. 如果s1和s2的所有字符都相等,那么返回整数0

如果只需要知道字符串之间的包含关系,那么可使用Contains方法来判断字符串中是 否包含指定子串,使用StartsWith方法和EndsWith方法来判断字符串是否以指定的 子串开始和结束

在这里插入图片描述
8. 删除字符串前后空格
在这里插入图片描述
9. 字符串分隔
在这里插入图片描述


上面就是对于String类型的简单介绍就是这些,具体还有其他的方法以及作用大家也可以自行查找,下面我们要介绍到的是String类型的优化版, StringBuilder类型

String Builder类型

为什么我们会说String Builder是String类型的优化版呢,这就要讲一下String类型的缺点了

String类型的缺点

String是.NET类库中比较特殊的一个引用类型,每一个String对象都是一个字符串常 量,而修改字符串的方法实际上都是返回一个新的String对象,原字符串仍然留在内存 中等待回收,那么当字符串较长或是操作频繁时就消耗大量的资源

解决方式

.NET类库的System.Text命名空间下专门定义了一个StringBuilder类,用于对字符串 进行动态的管理,而不是每次都生成新的字符串。 StringBuilder对象可以使用无参构造函数来创建,也可以基于一个现有字符串来创建

StringBuilder sb1 = new StringBuilder(); 
StringBuilder sb2 = new StringBuilder("abc");

String Builder的优点

StringBuilder与String类的用法有很多类似之处,如通过Length属性获取字符串长 度,通过索引函数访问字符,但StringBuilder的索引函数是可读写的,StringBuilder 也提供了Insert、Remove、Replace这些操作字符串的方法;尽管它们的返回类型为 StringBuilder,但方法并没有创建新的对象,返回的仍是当前对象。 此外,StringBuilder的ToString方法直接返回所包含的字符串内容。

String Builder字符连接操作

为了方便频繁的字符连接操作,StringBuilder提供了Append、AppendLine和 AppendFormat这3个方法。
Append方法用于将一个新串加到字符串的尾端,参数可以是字符串,可以是基本值类型。
AppendLine方法会在追加新串后再增加一个换行符。
AppendFormat方法在追加新串的同时进行参数格式化。

StringBuilder sb1 = new StringBuilder(); 
sb1.Append("公元"); 
sb1.AppendFormat("{0}年{1}月{2}日", 2020, 1, 1); 
Console.WriteLine(sb1.AppendLine()); //公元2020年1月1日

总结

以上就是我们今天的介绍,下期我们将会讲解到面向对象的基础概念。大家再见啦。

Unity中使用C#StringBuilder在普通C#开发中使用是一样的。StringBuilder是一个用于动态管理字符串的类,可以避免每次生成新的字符串,提高性能。在Unity中,我们可以在System.Text命名空间下引入StringBuilder类,并使用其提供的方法来操作字符串。 例如,我们可以使用无参构造函数创建一个空的StringBuilder对象: StringBuilder sb = new StringBuilder(); 我们也可以基于一个现有的字符串来创建StringBuilder对象: StringBuilder sb = new StringBuilder("Hello"); 普通C#中使用的StringBuilder类别没有太大区别。我们可以使用Length属性获取字符串长度,通过索引函数访问字符,并且StringBuilder的索引函数是可读写的。StringBuilder也提供了Insert、Remove、Replace等操作字符串的方法,这些方法并不会创建新的对象,而是对当前对象进行操作。最后,我们可以使用ToString方法将StringBuilder对象转换为字符串。 总之,在Unity中使用C#StringBuilder在普通C#开发中使用是一样的,可以方便地进行字符串的动态管理和操作。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [Unity开发C#基础-String类型StringBuilder类型](https://blog.csdn.net/qq_46093832/article/details/124376915)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* [Unity学习(C#)——StringBuilder](https://blog.csdn.net/weixin_45045387/article/details/107022819)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

想吃烤地瓜.

高抬小手一点

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

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

打赏作者

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

抵扣说明:

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

余额充值