直接调用stringbuilder的reverse()方法是最简洁高效的字符串反转方式,它原地修改、时间复杂度o(n),支持unicode补充字符,需校验null,单线程场景优先选stringbuilder而非stringbuffer。

直接调用 StringBuilder 的 reverse() 方法是最简洁、高效的字符串反转方式,它原地修改、时间复杂度 O(n),无需手动遍历或额外数组。
基本用法:一行代码完成反转
把字符串传入 StringBuilder 构造器,调用 reverse(),再转回 String:
String original = "hello";String reversed = new StringBuilder(original).reverse().toString();- 结果:
"olleh"
注意 reverse() 是破坏性操作
reverse() 修改的是当前 StringBuilder 实例本身,不返回新对象(返回 this):
在 Java 中初始化和管理阿里云 SDK客户端。包括单例模式、线程安全、endpoint 与 region 配置、VPC 终端节点、同步与异步等。
- 如果后续还需原内容,不要复用同一个实例;
- 想保留原始
StringBuilder,先复制:new StringBuilder(sb.toString()).reverse(); - 避免链式调用后误用原对象,例如:
sb.reverse().append("x")操作的是已反转后的缓冲区。
处理 null 和特殊字符没问题
StringBuilder 对 null 输入会抛出 NullPointerException,需提前校验:
- 安全写法:
String reversed = (str == null) ? null : new StringBuilder(str).reverse().toString(); - 支持 Unicode 补充字符(如 emoji),因为
StringBuilder基于 UTF-16 但正确处理代理对,反转逻辑保持字符完整性。
对比 StringBuffer:单线程优先选 StringBuilder
两者 API 一致,但 StringBuffer 方法是同步的,有额外开销:
- 多数场景用
StringBuilder更快; - 仅在多线程共享同一实例且需线程安全时才考虑
StringBuffer; - 反转操作本身不涉及并发,通常无需同步。
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南










