string转stringbuilder用new stringbuilder(str)或append(),stringbuilder转string必须用tostring();二者不共享char数组,string不可变,频繁互转影响性能。

String 和 StringBuilder 在 Java 中可以互相转换,但方式不同,核心在于理解两者的设计目的:String 不可变,StringBuilder 可变。
String 转 StringBuilder
直接用 StringBuilder 的构造方法即可,传入 String 对象:
- new StringBuilder(str) —— 最常用、最推荐的方式
- 也可以先创建空的 StringBuilder,再用 append(str) 追加(适合需要链式操作的场景)
StringBuilder 转 String
调用 toString() 方法,这是最标准、唯一安全的方式:
- sb.toString() 返回一个内容相同的新 String 对象
- 不能强制类型转换(如 (String) sb),会编译报错
- 注意:sb.toString() 每次都新建 String,不是返回内部缓存(StringBuilder 内部不持有 String 引用)
常见误区提醒
不要误以为 StringBuilder 和 String 共享底层 char 数组:
- StringBuilder 修改内容不会影响已生成的 String
- String 转 StringBuilder 后修改,也不会改变原 String(因为 String 不可变)
- 频繁在两者间来回转换(如循环中反复 sb.toString() → new StringBuilder())会影响性能,应尽量减少不必要的转换
简单示例代码
实际写法很直观:
- String → StringBuilder:StringBuilder sb = new StringBuilder("hello");
- StringBuilder → String:String s = sb.toString();
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南











