1. 利用 StringBuffer 或 StringBuilder 的 reverse 成员方法:
// StringBuffer public static String reverse1(String str) { return new StringBuilder(str).reverse().toString(); }
2. 利用 String 的 toCharArray 方法先将字符串转化为 char 类型数组,然后将各个字符进行重新拼接:
// toCharArray
public static String reverse2(String str) {
char[] chars = str.toCharArray();
String reverse = "";
for (int i = chars.length - 1; i >= 0; i--) {
reverse += chars[i];
}
return reverse;
}
3. 利用 String 的 CharAt 方法取出字符串中的各个字符:
// charAt
public static String reverse3(String str) {
String reverse = "";
int length = str.length();
for (int i = 0; i < length; i++) {
reverse = str.charAt(i) + reverse;
}
return reverse;
}
总结:第一种时利用了Java原有API中的方法reverse来进行反转,
第二种和第三种思想是一样的,都是要把原有的字符串的每个字符取出重新进行拼接,
第二种是先转的数组在进行倒序输出,
第三种则是利用了出栈入栈的规则,先入后出
例如:有一个数列(23,45,3,7,3,945)
我们先对其进行进栈操作,则进栈顺序为:23,45,3,7,3,945(放盒子)
我们在对其进行出栈操作,则出栈顺序为:945,3,7,3,45,23(盒子中拿)