1.递归逆序输出Integer类型的正整数字符串:
/** * 递归输出反转后Integer类型字符串 * @param a * @return */ public static String reverseIntToStringForLoop(Integer a) { if (a < 0) return ""; if (a < 10) return Integer.toString(a); Integer last = a - (a / 10) * 10; // 取得这个整数的最后一位 // 递归输出最后一位和前面的数字(去除当前a最后一位的数字) return Integer.toString(last) + reverseIntToStringForLoop(a / 10); }
注意:Integer的最值是2147483647,且可以将Integer转换为String进行逆序输出,下面有String逆序的方法。
2.递归逆序输出Long类型的正整数字符串:
/** * 递归输出反转后Long类型字符串 * @param a * @return */ public static String reverseLongToStringForLoop(Long a) { if (a < 0) return ""; if (a < 10) return Long.toString(a); Long last = a - (a / 10) * 10;// 取得这个整数的最后一位 // 递归输出最后一位和前面的数字(去除当前a最后一位的数字) return Long.toString(last) + reverseLongToStringForLoop(a / 10); }
3.递归逆序输出String类型的字符串:
/** * 递归输出反转后String类型字符串 * @param a * @return */ public static String reverseStringForLoop(String str) { if ((null == str) || (str.length() <= 1)) { return str; } return reverseStringForLoop(str.substring(1)) + str.charAt(0); }
4.字符数组逆序输出String类型的字符串:
/** * 字符数组逆序循环输出 * @param str * @return */ public static String reverseStringByArray(String str) { char[] ch = str.toCharArray(); StringBuffer sb = new StringBuffer(); for (int i = ch.length - 1; i >= 0; i--) { sb.append(ch[i]); } return sb.toString(); }
5.StringBuffer逆序输出String类型字符串:
/** * StringBuffer.reverse()方法反转字符串 * @param str * @return */ public static String reverseStringByReverse(String str) { return new StringBuffer(str).reverse().toString(); }
6.逆序方法测试类:ReverseTest
public class ReverseTest { public static void main(String[] args) { Long a = 87215125285887199l; Integer b = 579215154; //int最大值为:2147483647 String c = "Chinese"; String d = "English"; String e = "American"; String reverseA = reverseLongToStringForLoop(a); String reverseB = reverseIntToStringForLoop(b); String reverseC = reverseStringForLoop(c); String reverseD = reverseStringByArray(d); String reverseE = reverseStringByReverse(e); System.out.println("Long类型a逆序输出字符串为:" + reverseA); System.out.println("Integer类型b逆序输出字符串为:" + reverseB); System.out.println("String类型c递归逆序输出字符串为:" + reverseC); System.out.println("String类型d逆序输出字符串为:" + reverseD); System.out.println("String类型e逆序输出字符串为:" + reverseE); }
7.测试结果输出
Long类型a逆序输出字符串为:99178858252151278 Integer类型b逆序输出字符串为:451512975 String类型c递归逆序输出字符串为:esenihC String类型d逆序输出字符串为:hsilgnE String类型e逆序输出字符串为:naciremA
原文地址:https://blog.csdn.net/u011635492/article/details/80715562