码农小白 JAVA篇
StringBuilder类
1、什么是StringBuilder
我们知道,字符串是不可以改变的,所谓的修改,实际上是重新创建了一个新的字符串;而StringBuilder 可以改变 (字符串缓冲区)一开始是一个16的数组,如果不够,可以扩容,我们可以理解为,StringBuilder可以原地修改。
2、String 和 stringBulider的区别:
String具有不可变性,而StringBulider不具备
所以在频繁操作字符串 的时候,使用StringBuilder。因为频繁操作字符串(是指赋值+),String会在常量池中生成大量的废弃的中间变量。
StringBuilder和StringBuffer,StringBuffer线程安全,而StringBuilder没有,所以StringBuilde性能略高
建议使用StringBuilder
3、构造方法
- StringBuilder(String str)
构造一个字符串生成器,并初始化为指定的字符串内容。
该字符串生成器的初始容量为 16 加上字符串参数的长度。
str - 缓冲区的初始内容。 - StringBuilder()
构造一个不带任何字符的字符串生成器,其初始容量为 16 个字符
import java.util.Scanner;
public class Mycalss{
public static void main(String[] args) {
StringBuilder sb1 = new StringBuilder("0."); //带参构造
StringBuilder sb2 = new StringBuilder(); //不带参构造
}
}
4、常用的StringBuilder类的5种方法:
方法 | 描述 |
---|---|
append(int i) | 将指定的字符串追加到此字符序列。 |
delete(int start,int end) | 从start位置开始删除,end位置前结束删除. |
insert(int offend,String str) | 在offend位置添加内容,内容为String类的*str**内容 |
replace(int start,int end,String str) | 删除start开始位置到end结束前位置的内容,并在删除位置开始替换String类的str内容 |
substring(int start,int end) | 取出start位置开始到end结束前位置的字符串. |
5、示例
public class Myclass {
public static void main(String[] args) {
StringBuilder sb1 = new StringBuilder("a"); //创建一个StringBuilder对象,并初始化位"a"
sb1.append("bcdefg"); //给sb1追加字符串"bcdefg"
sb1.delete(2, 5); //从2位置开始删除,5位置前结束删除.
sb1.deleteCharAt(0); //删除下标为0的字符
sb1.insert(2, 'h'); //在2位置添加内容'h'
System.out.println(sb1);
}
}
输出结果
bfhg