stringbuilder是java中单线程下高效处理可变字符串的工具,通过直接操作内部字符数组避免频繁创建对象;提供三种构造方式、链式append、基于索引的增删改及reverse、tostring等关键操作。

StringBuilder 是 Java 中处理可变字符串的核心工具,适合在单线程场景下高效拼接、修改字符串。它不创建新对象,直接操作内部字符数组,避免了 String 频繁新建带来的性能损耗。
构造与初始化
三种常用构造方式对应不同使用起点:
- 无参构造:默认初始容量为 16,适合内容长度不确定、但预期较短的场景
-
指定容量构造:如
new StringBuilder(1024),提前预留空间,减少扩容次数,适用于已知大致长度的大文本处理 -
带初始字符串构造:如
new StringBuilder("start"),内部容量 = 字符串长度 + 16,内容直接写入缓冲区
追加与链式调用
append() 是最常用方法,支持多种类型参数(String、int、char、boolean、Object 等),并返回自身引用,天然支持链式调用:
- 连续拼接:
sb.append("Hello").append(" ").append(2026).append("!") - 自动处理 null:
sb.append(null)会写入字符串 "null",不会抛空指针异常 - 注意:append 的每次调用都修改原对象,不是生成新 StringBuilder
插入、删除与替换
这些操作均基于索引位置,需注意下标范围(0 ≤ index ≤ length):
-
insert(int offset, String str):在指定位置前插入内容,例如sb.insert(5, " ")在第 5 位前加空格 -
delete(int start, int end):删除 [start, end) 区间字符(含 start,不含 end);deleteCharAt(int index)删除单个字符 -
replace(int start, int end, String str):用新字符串替换 [start, end) 区间内容,长度可变
其他关键操作
除增删改外,还有几个高频实用方法:
-
reverse():原地反转整个字符序列,效率高,无需额外空间 -
length():返回当前字符个数;capacity():返回内部数组总容量(可能大于 length) -
toString():生成一个新的 String 对象,内容与当前 StringBuilder 一致;此后两者完全独立 - 清空内容可用
setLength(0)(比delete(0, length())更轻量)
大量免费API接口:立即使用
涵盖生活服务API、金融科技API、企业工商API、等相关的API接口服务。免费API接口可安全、合规地连接上下游,为数据API应用能力赋能!











