日期:2014-05-20  浏览次数:20644 次

请问这个题该如何干净利落的解决?
题目:
输入一个正整数,将其数字逆转。如: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)) ;

    }

}