StringBuilder.reverse()是Java中翻转字符串最简洁高效的方式,原地修改、时间复杂度O(n),一行即可完成:new StringBuilder("hello").reverse().toString()返回"olleh"。
直接调用 stringbuilder.reverse() 是 java 中翻转字符串最简洁高效的方式,它原地修改、时间复杂度 o(n),且无需手动遍历或额外数组。
基础用法:一行完成翻转
将字符串转为 StringBuilder 实例,调用 reverse(),再转回 String:
-
String reversed = new StringBuilder("hello").reverse().toString();→ 结果为"olleh" - 注意:
reverse()返回的是当前 StringBuilder 对象(支持链式调用),不创建新对象
处理空值与边界情况
该方法本身不处理 null,需提前校验:
- 传入 null 会抛出
NullPointerException - 建议封装时加判空:
Objects.requireNonNull(s, "input string must not be null") - 空字符串
""或长度为 1 的字符串调用 reverse 后结果不变,无需特殊处理
对比其他翻转方式的优势
相比手动循环、字符数组交换或 Stream API:
你接手一个需求时,是不是经常这样:"改一个小字段 → 结果把不相关的代码也改了"、"需求说得很模糊 → 做着做着发现跑偏了"、"数据库加个字段 → 上线才发现漏了数据兼容"、"做了个新功能 → 一个月后自己都忘了当时怎么设计的"、"写到一半被中断 → 再回来不知道从哪继续";这个 Skill 就是专门解决这些问题的。 它会自动探测你的项目环境(JDK、Spring Boot、ORM、数据库、前端框架),记在
- 代码量最少,语义清晰,不易出错
- 内部使用 char[] 原地交换,空间效率优于新建数组或列表
- 比
new StringBuffer(...).reverse()略快(因 StringBuilder 非线程安全,无同步开销)
实际应用小提示
适用于回文判断、单词逆序、密码简单倒序等场景:
立即学习“Java免费学习笔记(深入)”;
- 判断回文可写为:
s.equals(new StringBuilder(s).reverse().toString()) - 若需保留原始字符串,不必担心 —— StringBuilder 是独立副本,原字符串不受影响
- 频繁拼接+翻转时,复用同一 StringBuilder 实例可进一步减少对象创建

















