//方法1 遞歸方法
public static String reverse1(String s) {
? int length = s.length();
? if(length <= 1){
? ? return s;
? ? }
? String left = s.substring(0, length / 2);
? String right = s.substring(length / 2, length);
? return reverse1(right) + reverse1(left);
}
//方法2 通過(guò) charAt(int index)返回char值進(jìn)行字符串拼接
public static String reverse2(String s) {
? int length = s.length();
? String reverse = "";
? for(int i = 0; i < length; i++)
? reverse = s.charAt(i) + reverse;
? return reverse;
}
//方法3 把字符串轉(zhuǎn)換成字符數(shù)組倒敘拼接然后返回值
public static String reverse3(String s) {
? char[] array = s.toCharArray();
? String reverse = "";
? for(int i = array.length - 1; i >= 0; i--)
? reverse += array[i];
? return reverse;
}
//方法4 調(diào)用StringBuffer中的reverse方法
public static String reverse4(String s) {
? return new StringBuffer(s).reverse().toString();
}
//方法5 把字符串轉(zhuǎn)換成字符數(shù)組首位對(duì)調(diào)位置
public static String reverse5(String orig) {
? char[] s = orig.toCharArray();
? intn = s.length - 1;
? int halfLength = n / 2;
? for(int i = 0; i <= halfLength; i++) {
? chartemp = s[i];
? s[i] = s[n - i];
? s[n - i] = temp;
? }
? return new String(s);
}
//方法6
public static String reverse6(String s) {
? char[] str = s.toCharArray();
? int begin = 0;
? int end = s.length() - 1;?
? while(begin < end) {
? str[begin] = (char) (str[begin] ^ str[end]);
? str[end] = (char) (str[begin] ^ str[end]);
? str[begin] = (char) (str[end] ^ str[begin]);
? begin++;
? end--;? }
return new String(str);
}
//方法7
import java.util.Stack;
public class StringReverse {? ?
public static String reverse7(String s) {
? char[] str = s.toCharArray();
? Stack<Character> stack = new Stack<Character>();
? for (int i = 0; i < str.length; i++)
? stack.push(str[i]);
? String reversed = "";
? for (int i = 0; i < str.length; i++)
? reversed += stack.pop();
? return reversed;
}
}