/**
* 利用String类的toCharArray
* 倒序输出
* @param s
*/
public static void reverseString1(String s){
if(s.length()>0){
char[] c = s.toCharArray();
for(int i=c.length-1;i>=0;i--){
System.out.println(c[i]);
}
}else{
System.out.println("是一个空字符串");
}
}
/**
* 定义一个StringBuffer,利用StringBuffer类中的reverse()方法直接倒序输出
* @param s
*/
public static void reverseString2(String s){
if(s.length()>0){
StringBuffer buffer = new StringBuffer(s);
System.out.println(buffer.reverse());
}else{
System.out.println("是一个空字符串");
}
}
/**
* 利用栈先进后出的数据结构特性
* @param s
*/
public static void reverseString3(String s){
if(s.length()>0){
String str="";
Stack<Character> strStack = new Stack<Character>();
char[] chArray = s.toCharArray();
for(Character ch: chArray) {
strStack.push(ch);
}
int len = s.length();
for(int i= 0; i< len; i++) {
chArray[i] = strStack.pop();
}
for(Character string :chArray){
str+=string;
}
System.out.println(str);
}else{
System.out.println("是一个空字符串");
}
}
/**
* 递归
* @param s
* @return
*/
public static String reverseString4(String s){
if(s.length()>0) {
int len = s.length();
if (len == 1) {
return s;
} else {
String str = s.substring(1)+s.charAt(0);
return reverseString4(s.substring(1)) + s.charAt(0);
}
}
else {
return "这是一个空字符串";
}
}