| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 游戏开发 -> Unity学习之C#基础18——string类型、字符串池、stringbuilder可变字符串 -> 正文阅读 |
|
[游戏开发]Unity学习之C#基础18——string类型、字符串池、stringbuilder可变字符串 |
1.String类型? 上一节我们复习了引用类型,而string正是其中的一个。下面我们来看一段代码:
上面我们创建了4个字符串,大家先猜一猜b1~b4的结果。 object.Equals是比较两个数据是否相等,而object.ReferenceEquals是比较两个数据是否相同。 很显然,b1~b2是true,而b3是true,b4却是false。那么这是为什么呢? 下面我们引入字符串池的概念: ?通过上面的一串描述,我们知道了,字符串在直接赋值的时候会调用字符串池。而上面代码中str1和str2,当str1赋值为“你好”时,字符串池中没有,故赋予了一块内存存放“你好”。当str2同样赋值为“你好”时,字符串池中有相同字符串,故将其直接指向它。而字符串池的作用也显而易见为提高内存利用率。 相反,str3和str4就不一样了,它不会调用字符串池,而是直接在堆中新建了两块地区存放字符串,故它们并不相同。 2.可变字符串
?我们看上面的一串代码。之前我们说过字符串池的概念,只要是赋予了新的字符串,就会划出一块内存用于存储。而string简单拼接这样一次循环就要产生很多个垃圾。 这里我们使用stringbuilder可变字符串。
? 可变字符串虽然可以避免产生垃圾,但是当我们的字符串录入超过原定大小时,可变字符串就会舍弃原有空间,重新复制一份到新空间,就会产生更大的垃圾。所以我们在使用可变字符串时,一般适用于频繁的对字符串进行操作。 ?用法如上图,而在实例化时,我们如果知道这个字符串有多大,我们可以在括号中加入大小。 相应的一些方法,除了上面的append方法,还有: ?而我们string也有很多的方法如下: ?具体用法如下:
?根据上面所学,我们可以尝试一下上面的一些练习。 下面的代码仅供参考:
|
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/28 3:49:54- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |