直接调用 StringBuilder 的 toString() 方法即可转为 String,这是最标准、最安全的方式;因 StringBuilder 是可变序列,toString() 返回新 String 副本,内容一致且不受后续修改影响,语义清晰、无冗余操作。

直接调用 StringBuilder 的 toString() 方法即可转为 String,这是最标准、最安全的方式。
为什么用 toString() 而不是其他方式?
StringBuilder 是可变字符序列,本身不是 String;Java 设计上明确要求通过 toString() 获取其当前内容的不可变字符串副本。这个方法返回的是新创建的 String 对象,内容与当前 StringBuilder 内容一致,且后续对 StringBuilder 的修改不会影响已生成的 String。
常用转换写法(直接、简洁)
- StringBuilder sb = new StringBuilder("Hello");
String str = sb.toString(); // ✅ 推荐 - System.out.println(sb.toString()); // 直接输出
- return sb.toString(); // 在方法中返回 String
注意:不要用 + "" 或 String.valueOf(null) 等非常规方式
- sb + "" 虽然能“凑效”,但底层仍会新建 StringBuilder 并调用 toString,多一次冗余操作,语义也不清晰。
-
String.valueOf(sb) 实际内部也是调用
sb.toString(),绕路无必要。 - 避免误写成
sb.toString().intern(),除非你明确需要字符串常量池优化,否则没必要,还可能引发性能或内存问题。
实际传输场景示例(如 HTTP 请求、日志、JSON 字段)
很多 API 明确要求 String 类型参数:
- httpClient.post("/api", sb.toString()); // 传给网络库
- logger.info("Request data: {}", sb.toString()); // 日志记录
- jsonObject.put("content", sb.toString()); // 放入 JSON


















