java字符串反转的方法

阅读 14

05-28 21:00

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

递归(栈溢出)

-


精彩评论(0)

0 0 举报