Java中用StringBuilder反转字符串只需调用reverse()方法,它原地高效反转且支持链式调用;需注意null判空,空串和单字符安全;多线程可用StringBuffer替代。

Java 中用 StringBuilder 反转字符串非常简单,只需调用内置的 reverse() 方法即可,它会原地反转字符序列,效率高且无需手动遍历。
直接调用 reverse() 方法
StringBuilder 提供了现成的 reverse() 方法,执行后返回当前对象(支持链式调用),反转操作是就地完成的,不创建新对象。
- 先用字符串构造
StringBuilder实例 - 调用
reverse() - 用
toString()转回普通字符串(如需)
示例代码:
String original = "hello"; String reversed = new StringBuilder(original).reverse().toString(); System.out.println(reversed); // 输出:olleh
注意 null 和空字符串处理
StringBuilder 构造器不接受 null,传入 null 会抛出 NullPointerException。使用前建议判空。
立即学习“Java免费学习笔记(深入)”;
- 若原始字符串可能为
null,先做空值检查 - 空字符串(
"")和长度为 1 的字符串调用reverse()安全,结果不变
安全写法示例:
String str = null; String result = (str == null) ? null : new StringBuilder(str).reverse().toString();
与 StringBuffer 的区别(可选但实用)
如果多线程环境下需要线程安全的字符串反转,可用 StringBuffer 替代,它也有 reverse() 方法,语法完全一致。
-
StringBuilder:非线程安全,性能略高,适合单线程 -
StringBuffer:方法加了synchronized,适合并发场景
示例:
String reversed = new StringBuffer("world").reverse().toString(); // 同样输出:dlrow
不推荐的手动实现方式
虽然可以用循环+charAt 拼接实现反转,但没必要——既易出错又慢,还失去 StringBuilder 的设计优势。
- 避免从头拼接:
sb.insert(0, ch)时间复杂度高(O(n²)) - 避免额外数组或栈模拟,徒增复杂度
- 直接用
reverse()是最简洁、高效、可读性最强的选择


















