字符串abcdefg → 实现反序输出 gfedcba
[1]用String来实现
public static void main(String[] args) {
String s="abcdefg";
String a="";
for(int i=s.length()-1;i>=0;i--){
a=a+s.charAt(i);
}
System.out.println(a);
}
[2]用String中的toCharArray()来实现
public static void main(String[] args) {
String s="abcdefg";
char[] a = s.toCharArray();
String b="";
for (int i = a.length - 1; i >= 0; i--) {
b+=a[i];
}
System.out.println(a);
}
[3]用StringBuffer来实现
public static void main(String[] args) {
String s="abcdefg";
StringBuffer a = new StringBuffer(s.length()-1);
for(int i=s.length()-1;i>=0;i--){
a.append(s.charAt(i));
}
System.out.println(a);
}
[4]用StringBuffer中的reverse()来实现 (推荐此方法)
public static void main(String[] args) {
String s="abcdefg";
StringBuffer a = new StringBuffer(s.length()-1);
a=a.append(s);
a=a.reverse();
System.out.println(a);
}
[5]用递归的方式来实现
public static void main(String[] args) {
String s="abcdefg";
String a=reverse(s);
System.out.println(a);
}
public static String reverse(String s){
if(s.length()<=1){
return s;
}
return reverse(s.substring(1))+s.charAt(0);
}
注:这里 return reverse(s.substring(1))+s.charAt(0); 中的s.substring(1)是拿到字符串从第二个字符开始的字符串(eg:第一次递归s.substring(1)拿到的是bcdefg,s.charAt(0)拿到的是a, 第二次递归就是cdefg 、 b,以此类推,就把a放到了最后,实现了字符串反转)