1 public class Test 2 { 3 final static int[] sizeTable = { 9, 99, 999, 9999, 99999, 999999, 9999999, 99999999, 999999999, Integer.MAX_VALUE }; 4 5 static int sizeOfInt(int x) 6 { 7 for (int i = 0;; i++) 8 if (x <= sizeTable[i]) 9 return i + 1;10 }11 12 public static String reverse(String originStr)13 {14 if (originStr == null || originStr.length() <= 1)15 return originStr;16 return reverse(originStr.substring(1)) + originStr.charAt(0);17 }18 19 public static Integer reverse(int value)20 {21 if (value < 10)22 {23 return value;24 }25 return (value % 10) * (int)Math.pow(10, sizeOfInt(value) - 1) + reverse(value / 10);26 }27 28 public static void main(String[] args)29 {30 System.out.println(reverse("helloworld"));31 System.out.println(reverse(123456789));32 33 }34 }