Java String如何逆序
方法一:使用StringBuilder的reverse方法
Java中的StringBuilder类提供了reverse()方法,可以方便地实现字符串逆序。
String original = "Hello";
String reversed = new StringBuilder(original).reverse().toString();
System.out.println(reversed); // 输出: olleH
方法二:使用字符数组手动逆序
通过将字符串转换为字符数组,然后交换字符位置实现逆序。
String original = "World";
char[] chars = original.toCharArray();
int left = 0, right = chars.length - 1;
while (left < right) {
char temp = chars[left];
chars[left] = chars[right];
chars[right] = temp;
left++;
right--;
}
String reversed = new String(chars);
System.out.println(reversed); // 输出: dlroW
方法三:使用递归
递归方法可以逆序处理字符串,但需要注意栈溢出风险。
public static String reverseRecursive(String str) {
if (str.isEmpty()) {
return str;
}
return reverseRecursive(str.substring(1)) + str.charAt(0);
}
String original = "Java";
String reversed = reverseRecursive(original);
System.out.println(reversed); // 输出: avaJ
方法四:使用Java 8的Stream API
利用Stream的collect和StringBuilder实现逆序。
String original = "Stream";
String reversed = original.chars()
.mapToObj(c -> (char)c)
.collect(StringBuilder::new, StringBuilder::append, StringBuilder::append)
.reverse()
.toString();
System.out.println(reversed); // 输出: maertS
方法五:使用Apache Commons Lang库
如果项目中已引入Apache Commons Lang,可以使用StringUtils.reverse()方法。

import org.apache.commons.lang3.StringUtils;
String original = "Apache";
String reversed = StringUtils.reverse(original);
System.out.println(reversed); // 输出: ehcapA
注意事项
- 对于空字符串或
null输入,方法一至四会直接处理,而方法五的StringUtils.reverse()会安全返回null。 - 方法三的递归实现不适合处理超长字符串,可能导致栈溢出。
- 方法二的手动逆序适用于需要自定义逆序逻辑的场景。






