JAVA字符串反转的几种思路和方法,根据网上的一些方法再加上自己想法整理而出,欢迎指导。
1. 使用字符数组缓存
public static String reverse(String str){
char[] array = str.toCharArray();
int l = array.length;
for(int i=0;i<=Math.sqrt(l);i++){
array[i] ^= array[l-1-i];
array[l-1-i] ^= array[i];
array[i] ^= array[l-1-i];
}
return new String(array);
}
2. 使用StringBuilder的reverse()方法
public static String reverse(String str){
return new StringBuilder(str).reverse().toString();
}
3. 使用栈
public static String reverse(String str){
Stack<Character> stack = new Stack<Character>();
char[] array = str.toCharArray();
for(char c : array){
stack.push(c);
}
for(int i=0;i<array.length;i++){
array[i] = stack.pop();
}
return new String(array);
}
4. 使用递归
public static String reverse(String str){
if(str.length() == 1)
return str;
return reverse(str.substring(1))+str.charAt(0);
}