题目:
输入一个正整数,将其数字逆转。如:12345 处理后 54321
这个题很简单,但是我做不出一个通用公式(如3位数,5位数,7位数的方法不太一样),求高手指点逻辑思维。
如果固定三位数,我就是用数组,提取余数,然后颠倒排列输出……
求如何在不确定输入几位数的情况下,顺利逆转数字?
------解决方案--------------------
- Java code
package org.cai.bean;public class Test { public static int reverseInt(int value){ String tmp = String.valueOf(value) ; char[] arr = tmp.toCharArray() ; char ch ; for (int i = 0; i < arr.length/2; i++){ ch = arr[i] ; arr[i] = arr[arr.length-1-i] ; arr[arr.length-1-i] = ch ; } tmp = new String(arr) ; return Integer.valueOf(tmp) ; } public static void main(String[] args) { System.out.println("123 -->" + Test.reverseInt(123)) ; System.out.println("4560 -->" + Test.reverseInt(4560)) ; }}
------解决方案--------------------
- Java code
package org.cai.bean;public class Test { public static int reverseInt(int value){ String tmp = String.valueOf(value) ;//整数换成为字符串 StringBuffer sb = new StringBuffer(tmp) ;//构建StringBuffer因为StringBuffer有互换元素位置的方法 tmp = sb.reverse().toString() ;//互换元素位置 return Integer.valueOf(tmp) ; } public static void main(String[] args) { System.out.println("123 -->" + Test.reverseInt(123)) ;//不解释 System.out.println("4560 -->" + Test.reverseInt(4560)) ; }}