2018-05-13
StringBuilder
一、String、StringBuilder 、StringBuffer 的区别
StringBuffer 和 StringBuilder 类的对象能够被多次的修改,并且不产生新的未使用对象,都表示可变的字符串。
当对字符串进行修改的时候,需要使用 StringBuffer 和 StringBuilder 类。
唯一的区别:
StringBuffer :StringBuffer中很多方法可以带有synchronized关键字,所以可以保证线程是安全的。
StringBuilder :StringBuilder的方法则没有synchronized关键字,所以不能保证线程安全,但性能更高。
所以如果要进行的操作是多线程的,那么就要使用StringBuffer,但是在单线程的情况下,还是建议使用速度比较快的StringBuilder。
参考:https://www.cnblogs.com/su-feng/p/6659064.html
-----------------------------------------------------------
二、StringBuilder 的常用操作
1、设置容量和长度
虽然 StringBuilder对象是动态对象,允许扩充它所封装的字符串中字符的数量,但是您可以为它可容纳的最大字符数指定一个值。此值称为该对象的容量,不应将它与当前 StringBuilder对象容纳的字符串长度混淆在一起。例如,可以创建 StringBuilder类的带有字符串“Hello”(长度为 5)的一个新实例,同时可以指定该对象的最大容量为 25。当修改 StringBuilder时,在达到容量之前,它不会为其自己重新分配空间。当达到容量时,将自动分配新的空间且容量翻倍。可以使用重载的构造函数之一来指定 StringBuilder类的容量。以下代码示例指定可以将 MyStringBuilder对象扩充到最大 25个空白。
StringBuilder MyStringBuilder = new StringBuilder(“Hello World!”, 25);
2、常用方法:
Append(Object val):表示追加任意数据类型
StringBuilder delectCharAt(int index):删除字符串中指定位置的字符。