StringBuilder常用方法详解
目录
核心方法详解
1. 构造方法
2. 追加内容:append()
3. 插入内容:insert()
4. 删除内容:delete()
5. 替换内容:replace()
6. 反转字符串:reverse()
7. 字符串长度操作
8. 容量管理
9. 转换为String:toString()
性能最佳实践
StringBuilder
是 Java 中用于高效操作可变字符串的类,位于 java.lang
包中。与不可变的 String
类不同,StringBuilder
允许在不创建新对象的情况下直接修改字符串内容,适用于频繁拼接、删除或替换字符串的场景。其线程不安全但性能更高,而 StringBuffer
是线程安全的替代方案。
核心方法详解
1. 构造方法
-
StringBuilder()
默认初始容量为16字符的缓冲区。
StringBuilder sb = new StringBuilder();
-
StringBuilder(int capacity)
指定初始容量。
StringBuilder sb = new StringBuilder(100); // 初始容量100
-
StringBuilder(String str)
用指定字符串初始化。
StringBuilder sb = new StringBuilder("Hello");
2. 追加内容:append()
向末尾追加数据,支持多种类型(字符串、数字、对象等)。
StringBuilder sb = new StringBuilder("Hello");
sb.append(" World"); // "Hello World"
sb.append(123); // "Hello World123"
sb.append(true); // "Hello World123true"
sb.append("hello").("world").(123)//链式编程 helloworld123
3. 插入内容:insert()
在指定位置插入数据。
StringBuilder sb = new StringBuilder("Hello");
sb.insert(2, "Java"); // "HeJavallo"
// 注意:索引范围是 0 到 length()
4. 删除内容:delete()
删除指定区间的字符(左闭右开)。
StringBuilder sb = new StringBuilder("Hello World");
sb.delete(5, 11); // "Hello"
sb.deleteCharAt(4); // 删除索引4的字符,结果"Hell"
5. 替换内容:replace()
替换指定区间的字符。
StringBuilder sb = new StringBuilder("Hello World");
sb.replace(6, 11, "Java"); // "Hello Java"
6. 反转字符串:reverse()
反转当前字符串。
StringBuilder sb = new StringBuilder("Hello");
sb.reverse(); // "olleH"
7. 字符串长度操作
-
length()
:返回实际长度。 -
setLength(int newLength)
:设置新长度(截断或填充空字符)。
StringBuilder sb = new StringBuilder("Hello");
sb.setLength(3); // "Hel"
sb.setLength(5); // "Hel "(后两位为空字符)
8. 容量管理
-
capacity()
:返回当前容量(非实际长度)。 -
ensureCapacity(int minCapacity)
:确保最小容量。
StringBuilder sb = new StringBuilder();
sb.ensureCapacity(100); // 确保容量至少为100
9. 转换为String:toString()
将内容转换为不可变字符串。
StringBuilder sb = new StringBuilder("Hello");
String str = sb.toString(); // "Hello"
性能最佳实践
- 预估初始容量:减少扩容次数(默认扩容规则:
新容量 = 原容量*2 + 2
)。 - 链式调用:利用方法返回自身引用的特性。
- 避免在循环中使用
+
拼接字符串,优先使用StringBuilder
。