直接调用 stringbuilder 的 reverse() 方法即可高效完成字符串倒序,它原地修改、时间复杂度 o(n)、支持链式调用,但对 emoji 等补充字符可能因 utf-16 代理对拆分而异常。

直接调用 StringBuilder 的 reverse() 方法就能完成字符串倒序,它原地修改、高效且简洁。
reverse() 是 StringBuilder 自带的原地翻转方法
不同于 String 不可变,StringBuilder 是可变对象,reverse() 会直接反转内部字符序列,不创建新对象,时间复杂度 O(n),空间上也无额外开销。
- 调用后原
StringBuilder实例内容已改变,如需保留原始内容,应先toString()备份或新建实例 - 该方法返回
this(即当前 StringBuilder 对象),支持链式调用 - 对空字符串或单字符调用也安全,不会报错
基本用法:三步搞定倒序
从字符串出发,构建 → 翻转 → 获取结果,共三行代码:
在 Java 中初始化和管理阿里云 SDK客户端。包括单例模式、线程安全、endpoint 与 region 配置、VPC 终端节点、同步与异步等。
String original = "hello"; StringBuilder sb = new StringBuilder(original); String reversed = sb.reverse().toString(); // 得到 "olleh"
也可合并为一行:
String reversed = new StringBuilder("world").reverse().toString();
注意中文、emoji 和 Unicode 补充字符
reverse() 按 UTF-16 代码单元反转,对大部分中文字符没问题,但遇到 emoji(如 ??)或生僻汉字(位于 Unicode 补充平面),可能因代理对(surrogate pair)被拆开导致显示异常。
- 普通中文、英文字母、数字、常见符号均能正确翻转
- 若需严格按 Unicode 字符(code point)翻转,应手动遍历 codePoint,而非依赖
reverse() - 日常业务中(如倒序日志、ID、纯 ASCII 文本),直接用
reverse()安全可靠
和 String + for 循环对比:为什么推荐 reverse()
手写循环倒序需新建 char 数组或 StringBuilder,再逐个 append,代码更长、易出错、性能略低;而 reverse() 是 JDK 高度优化的 native 级实现。
- 少写 5–8 行代码,逻辑更清晰
- 避免索引越界、方向写反等常见 bug
- 在大量文本处理时,性能优势更明显(尤其配合多次 append 后翻转)
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南










