Java字符串反转主要有四种方式:1. StringBuilder.reverse()最简洁高效;2. 字符数组倒序遍历适合理解底层逻辑;3. Collections.reverse()需转List,略繁琐;4. 递归方式仅适用于教学,有栈溢出风险。

Java 中字符串反转有多种方式,核心思路是把字符串转成可操作的字符序列,再按倒序重新组合。
使用 StringBuilder 的 reverse() 方法(最常用)
这是最简洁高效的方式,StringBuilder 内置了 reverse() 方法,直接调用即可:
- 先用 new StringBuilder(str) 构造对象
- 调用 .reverse() 方法返回自身(链式调用)
- 最后用 .toString() 转回 String
示例代码:
String reversed = new StringBuilder(str).reverse().toString();
// 结果: "olleh"
转换为字符数组后倒序遍历
适合理解底层逻辑或需要自定义处理每个字符的场景:
立即学习“Java免费学习笔记(深入)”;
- 调用 str.toCharArray() 得到 char[]
- 从末尾开始遍历数组,逐个拼接或写入新数组
- 最后用 new String(charArray) 构造结果
示例代码:
String str = "world";char[] chars = str.toCharArray();
for (int i = chars.length - 1; i >= 0; i--) {
System.out.print(chars[i]); // 直接输出:dlrow
}
使用 Collections.reverse()(需转为 List)
适用于想借助集合工具类的场景,但略显繁琐,性能不如前两种:
- 将字符串转为 Character 的 List(需遍历或 Streams)
- 调用 Collections.reverse(list)
- 再合并成字符串
示例(Java 8+):
String str = "java";List
Collections.reverse(list);
String reversed = list.stream().map(String::valueOf).collect(Collectors.joining());
// 结果:"avaj"
递归方式(教学用途为主)
体现递归思想,但实际开发中不推荐用于长字符串(栈溢出风险):
- 递归终止条件:空串或单字符直接返回
- 每次取首字符,递归处理剩余子串,再把首字符拼在结果末尾
示例:
public static String reverse(String s) {if (s == null || s.length() return reverse(s.substring(1)) + s.charAt(0);
}
日常开发优先选 StringBuilder 方式,简洁、高效、可读性强。其他方法可根据具体需求或学习目的选用。


















