总结字符串反转的几种方法。
/**
* 1.JDK自带方法
*/
public static String reverse1(String str){
return new StringBuffer(str).reverse().toString();
}
/**
* 2.数组方法
*/
public static String reverse2(String str){
char[] chararr = str.toCharArray();
StringBuilder builder = new StringBuilder();
for (int i = chararr.length-1; i >= 0; i--) {
builder.append(chararr[i]);
}
return builder.toString();
}
/**
* 3.字符串拼接
*/
public static String reverse3(String str){
String reverseStr = "";
for (int i = 0; i < str.length(); i++) {
reverseStr = str.charAt(i) + reverseStr;
}
return reverseStr;
}
/**
* 4.递归
*/
public static String reverse4(String str){
int length = str.length();
if (length <= 1){
return str;
}
int lengths = length / 2;
String left = str.substring(0, lengths);
String right = str.substring(lengths, length);
return reverse4(right) + reverse4(left);
}
/**
* 5.利用栈:后进先出
*/
public static String reverse5(String str){
String reverseStr = "";
char[] charArr = str.toCharArray();
Stack<Character> stack = new Stack<>();
for (int i = 0; i < charArr.length; i++) {
stack.push(charArr[i]);
}
for (int i = 0; i < charArr.length; i++) {
reverseStr += stack.pop();
System.out.println(reverseStr);
}
return reverseStr;
}
/**
* 6.交换两边的值
*/
public static String reverse6(String str){
char[] charArr=str.toCharArray();
int length=charArr.length;
char temp;
for(int i=0;i<length/2;i++){
temp=charArr[i];
charArr[i]=charArr[length-i-1];
charArr[length-i-1]=temp;
}
return String.valueOf(charArr);
}
欢迎指正。