1. 简介
StringBuilder是 Java 中用于创建和操作可变字符串的类,位于java.lang包下。- 常用于频繁修改字符串内容的场景,效率比直接用字符串拼接(
String)高很多。
2. 和 String 的区别
- String: 不可变,一旦创建就无法修改,每次拼接等操作都会生成新的字符串对象,效率较低。
- StringBuilder: 可变,在原有对象上直接修改,适合多次拼接和编辑字符串。
3. 常用构造方法
StringBuilder():创建一个空的 StringBuilder 对象。StringBuilder(String str):通过传入字符串初始化。
4. 常用方法
| 方法 | 作用 |
|---|---|
append(xxx) | 追加各种类型的数据到末尾,可以链式调用 |
insert(int offset, xxx) | 在指定位置插入数据 |
delete(int start, int end) | 删除指定区间的字符(start 包含,end 不包含) |
replace(int start, int end, String str) | 用新字符串替换指定区间内容 |
reverse() | 反转当前内容 |
toString() | 将 StringBuilder 对象转为 String 类型 |
链式调用示例:
sb.append("Hello").append(" World");
5. 代码示例
StringBuilder sb = new StringBuilder();
sb.append("Hello");
sb.append(" World");
sb.insert(5, ",");
sb.delete(0, 1);
sb.replace(0, 4, "Hi");
String result = sb.toString(); // "Hi, World"
6. 使用场景
- 需要频繁对字符串进行增删改查操作时。
- 处理大量字符串拼接(如循环累加构造字符串)。
7. 注意事项
StringBuilder是非线程安全的。如果多线程场景下需要用到,应考虑用StringBuffer(线程安全,但效率略低)。- 注意理解索引范围(大多数方法区间为「前闭后开」)。

