面试_算法_Java中将字符串反转的方法

89 阅读1分钟

通过StringBuffer或StringBuilder的reverse()方法

String类没有reverse()方法,因此可以借助StringBuilder或StringBuffer,最后再转化回String。

StringBuffer sb = "abc";
System.out.println(sb.reverse().toString());

StringBuilder的使用与StringBuffer一致,并且都能处理中文。



将String转化为char数组后原地逆置

String str = new String("abcde");
char[] strArray = str.toCharArray();           // String转化为char数组
for (int i = 0, j = str.length() - 1; i < j; i++, j--) {
    char temp = strArray[i];
    strArray[i] = strArray[j];
    strArray[j] = temp;
}
System.out.println(String.valueOf(strArray));  // char数组转化为String

也可以转化为char数组后放到栈中,利用先进后出的方法特性



利用递归

public static String dg(String str) {
    int len = str.length();
    if (len <= 1) {
        return str;
    }
    String left = str.substring(0, len / 2);
    String right = str.substring(len / 2, len);
    return dg(right) + dg(left);
}