string和StringBuilder
来源:互联网 发布:java swing教程 编辑:程序博客网 时间:2024/04/29 21:00
在之前我们简单的介绍了string字符串的一些操作方法,有一点要知道的是,当我们修改string字符串时,实质上我们是在堆内存里,重新开辟了一个内存空间,将修改完的字符串放进去,再引用到这块内存,旧的内存空间则被GC回收。
如果我们需要频繁地修改字符串,那这种重复开辟内存的方法就会影响效率,所以我们有个StringBuilder类,也能够创建一个字符串,但是用法和string不同
StringBuilder类
StringBuilder创建的字符串其实是一个对象,通过一个字符串赋值给这个对象。
创建StringBuilder的三种方法:
StringBuilder sb = new StringBuilder("www.baidu.com"); //利用构造函数创建一个对象
StringBuilder sb = new StringBuilder(20); //初始化一个空的StringBuilder对象,并且占有20个字符的大小
StringBuilder sb = new StringBuilder("www.baidu.com",100); //初始化了一个为"www.baidu.com"的字符串并且有100个字符的空间
StringBuilder的性质和我们之前所说的列表有一些相同的地方:当我们给StringBuilder的对象申请了50个字符空间,如果当传入的字符串超出了这个范围,它会申请一个新的内存空间,容量为原来的两倍,旧字符串会被回收。
StringBuilder和string的区别
这两种类型都能够修改字符串,但是string修改字符串时,是申请新的内存空间然后修改引用,回收旧内存。而StringBuilder修改字符串是直接修改堆内存里的字符串,不修改引用,除非字符串的长度超出了容量。
左图:string修改字符串过程
有图:StringBuilder修改字符串过程
和string一样,StringBuilder也有其他操作字符串的方法
- 增添字符串 sb.Append(“xxx”);
- 插入字符串或字符 sb.Insert(0,”http://”);
- 移除指定长度的字符串 sb.Remove(0,4);
- 替换字符串或字符 sb.Replace(“.”,”,”);
这些只是一些常用的方法,如果想去了解其他操作的方法,我们可以在VS中,在StringBuilder类上按F12,查看这个类里的方法。
阅读全文
0 0
- String 、StringBuffer 和 StringBuilder
- String、StringBuffer和StringBuilder
- string和StringBuilder比较
- String和StringBuilder
- String、StringBuffer和StringBuilder
- String、StringBuffer和StringBuilder
- String和StringBuilder区别
- String和StringBuilder 区别
- StringBuilder和string区别
- StringBuilder和String区别
- string 和StringBuilder比较
- String、StringBuffer和StringBuilder
- String中的“+”和StringBuilder
- String Stringbuffer和StringBuilder
- string和stringBuilder区别
- string和stringBuilder区别
- string和stringBuilder区别
- StringBuilder和String
- Deep Learning(二):深度学习框架的比较(MXNet, Caffe, TensorFlow, Torch, Theano)
- 在北京,一款App从无到有至少需要100万?
- 面向对象的用户体验设计(持续更新10.29)
- Golang学习之路(一)IDE Gogland
- 【马仔创业感悟】初创公司的人员组成
- string和StringBuilder
- 对HTTP header以及浏览器上传数据格式的部分理解
- 理解神经网络中的Dropout
- 三分钟学会用SpringMVC搭建最小系统(超详细)
- 贯穿产品运营过程的三个用户思维
- QT 发布Debug和Release的文件夹中缺少*.dll文件
- 产品微操的艺术:提高核心指标的5个需求原理(1~5完)
- 新产品孕育记:PM如何把一款产品从0带到1
- 52个有效方法阅读笔记四