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:
- 代码量最少,语义清晰,不易出错
- 内部使用 char[] 原地交换,空间效率优于新建数组或列表
- 比
new StringBuffer(...).reverse()略快(因 StringBuilder 非线程安全,无同步开销)
实际应用小提示
适用于回文判断、单词逆序、密码简单倒序等场景:
- 判断回文可写为:
s.equals(new StringBuilder(s).reverse().toString()) - 若需保留原始字符串,不必担心 —— StringBuilder 是独立副本,原字符串不受影响
- 频繁拼接+翻转时,复用同一 StringBuilder 实例可进一步减少对象创建
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南











