Java中实现字符串反转有很多方法,大家可以根据实际情况选择使用。
方法一:StringBuilder.reverse()
String str = "Hello";
String reversed = new StringBuilder(str).reverse().toString();
// 输出 "olleH"
特点:效率最高(时间复杂度O(n)),线程不安全
方法二:字符数组遍历
char[] chars = str.toCharArray();
for(int i=0, j=chars.length-1; i<j; i++, j--){
char temp = chars[i];
chars[i] = chars[j];
chars[j] = temp;
}
String reversed = new String(chars);
适用场景:需要自定义反转逻辑时使用
方法三:递归实现
public static String reverseRecursive(String str) {
return str.isEmpty() ? str :
reverseRecursive(str.substring(1)) + str.charAt(0);
}
注意:栈深度限制,不推荐超长字符串
方法四:Java 8 Stream API
String reversed = str.chars()
.mapToObj(c -> (char)c)
.reduce("", (s,c) -> c+s, (s1,s2) -> s1+s2);
特点:函数式编程风格,性能较差
性能对比(处理10万字符)
方法 | 耗时(ms) |
StringBuilder | 2 |
字符数组 | 5 |
Stream API | 320 |
递归(栈溢出) | - |