// 先转为数组,然后反向遍历 拼接
public static String reversStr(String str) {
char[] charArray = str.toCharArray();
String result = "";
for (int i = charArray.length - 1; i >= 0; i--) {
result += charArray[i];
}
return result;
}
// 利用StringBuilder的reverse方法
public static String reversStr2(String str) {
StringBuilder sb = new StringBuilder(str);
return (sb.reverse()).toString();
}
// 利用栈的特性可以先压栈再弹出
public static String reversStr3(String str) {
Stack s = new Stack();
for (int i = 0; i < str.length(); i++) {
s.push(str.charAt(i));
}
String result = "";
while (!s.isEmpty()) {
result += s.pop();
}
return result;
}
// 递归反转字符串
public static String reversStr4(String str) {
if (str == null || str.length() <= 1) {
return str;
}
// 递归每次取第一个位置的字母放在最后
return reversStr4(str.substring(1)) + str.charAt(0);
}