stringbuilder的reverse()方法原地反转,时间复杂度o(n),直接操作内部字符数组、不创建新对象,支持链式调用,比string反转更高效。

StringBuilder 的 reverse() 方法是原地反转,时间复杂度 O(n),无需额外字符串对象,是最高效的标准方式。
reverse() 的工作原理
它直接在内部字符数组上操作,从首尾两端向中间交换字符,不创建新对象,也不涉及字符串拼接或复制。相比手动循环或 String + 拼接,避免了不可变字符串带来的多次内存分配。
基本用法示例
只需一行调用即可完成反转:
Java JDK 25 来自 OpenJDK 官方归档,版本为 JDK 25,本条下载地址已指向官方 Windows x64 zip 安装包直链,适合调试旧项目或兼容旧版 Java 运行环境。
StringBuilder sb = new StringBuilder("hello");
sb.reverse(); // 直接修改自身
System.out.println(sb); // 输出 "olleh"
注意返回值和链式调用
reverse() 返回 this(即当前 StringBuilder 对象),支持方法链:
- 可连续调用其他方法,如
sb.reverse().toString() - 也可用于构造后立即反转:
new StringBuilder("abc").reverse().toString() - 注意:它不返回新对象,所有操作都作用于原实例
与 String 反转的对比
若用 String 实现反转,必须新建 StringBuilder 或字符数组,再转回 String,多出至少两次对象创建:
- 错误低效写法:
new String(new StringBuilder(s).reverse().toString())(冗余) - 正确简洁写法:
new StringBuilder(s).reverse().toString() - 如果已有 StringBuilder 实例,直接调用 reverse() 即可,不需 toString 再重建
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南










