stringbuilder.insert()是java中高效在指定位置插入内容的方法,直接修改原对象、避免创建新字符串,支持多种数据类型插入和链式调用,适用于频繁拼接或动态插入场景。

StringBuilder.insert() 是 Java 中高效在指定位置插入内容的核心方法,它直接修改原对象、避免创建新字符串,适合频繁拼接或动态插入的场景。
insert() 方法的基本用法
该方法有多个重载版本,最常用的是:
- insert(int offset, String str):从索引 offset 处插入字符串 str
- 索引从 0 开始,offset 可等于当前长度(即追加到末尾),但不能为负数或超过当前长度(否则抛出
StringIndexOutOfBoundsException)
插入位置的边界与常见情况
假设初始 StringBuilder 为 new StringBuilder("abc")(长度为 3),合法的 offset 范围是 0 到 3(含):
-
insert(0, "X")→"Xabc"(开头插入) -
insert(1, "X")→"aXbc"(在 'a' 和 'b' 之间) -
insert(3, "X")→"abcX"(末尾插入,等价于 append) -
insert(4, "X")→ 抛异常(越界)
插入其他类型数据的便捷重载
无需手动转换,insert() 提供多种类型支持:
-
insert(2, 123)→ 插入字符串 "123" -
insert(2, true)→ 插入 "true" -
insert(2, 'Z')→ 插入单个字符 'Z' -
insert(2, new char[]{'x','y'})→ 插入 "xy"
链式调用与实际应用示例
insert() 返回 this,支持链式操作:
StringBuilder sb = new StringBuilder("hello");
sb.insert(5, " world").insert(0, "[").insert(12, "]");
// 结果:"[hello world]"
典型用途包括格式化日志、生成 SQL 片段、在模板中注入变量值等,比反复使用 + 或 concat 更省内存。
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南











