通过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);
}