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

前言

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

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

文章目录

  • 前言
  • String类型简介
  • String类型方法
  • String Builder类型
    • String类型的缺点
    • 解决方式
    • String Builder的优点
    • String Builder字符连接操作
  • 总结

String类型简介

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

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

经过我们自己写出代码测试,发现这些操作都是可以的,测试结果如下:
Unity开发之C#基础-String类型与StringBuilder类型_第2张图片
需要我们注意的是,String类型中的索引长度是只读的,也就是不能修改的。
Unity开发之C#基础-String类型与StringBuilder类型_第3张图片

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

String类型方法

  1. 大小写字母转换
    Unity开发之C#基础-String类型与StringBuilder类型_第4张图片

  2. 查找字符在当前字符串中的位置
    Unity开发之C#基础-String类型与StringBuilder类型_第5张图片

  3. 字符串截取
    Unity开发之C#基础-String类型与StringBuilder类型_第6张图片

  4. 字符串插入
    Unity开发之C#基础-String类型与StringBuilder类型_第7张图片

  5. 字符串删除
    Unity开发之C#基础-String类型与StringBuilder类型_第8张图片

  6. 字符替换

    Unity开发之C#基础-String类型与StringBuilder类型_第9张图片

  7. 字符串比较
    如果两个字符串长度相同,且各个对于位置上的 字符也都相同,那么认为字符串是相等的。Unity开发之C#基础-String类型与StringBuilder类型_第10张图片
    比较规则:
    1. 如果s1和s2都为空字符串,那么返回整数0
    2. 比较s1的第一个字符a1和s2的第一个字符a2,如果相等,则继续比较s1和s2的剩 余子串,否则返回a1和a2的比较结果
    3. 如果s1和s2的所有字符都相等,那么返回整数0

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

Unity开发之C#基础-String类型与StringBuilder类型_第11张图片
8. 删除字符串前后空格
Unity开发之C#基础-String类型与StringBuilder类型_第12张图片
9. 字符串分隔
Unity开发之C#基础-String类型与StringBuilder类型_第13张图片


上面就是对于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#代码篇,c#,unity,游戏程序)