leetcode7.整数の反転


32ビットの符号付き整数を指定し、整数の数値を反転します.
例1:
  :123
  :321

例2:
  :-123
  :-321

例3:
  :120
  :21

注意:
我々の環境では32ビットの符号付き整数しか記憶できないと仮定し,その数値範囲は[−231,231−1]である.この仮定によれば,反転後の整数がオーバーフローすると0を返す.
考え方:Stringに変換reverse()関数で逆を取り、完了したらintに変換すればよい.
問題:負数は直接変換できません.{負数->絶対値、反転した絶対値->負数}が必要です.
class Solution {
    public int reverse(int x) {
        //     (   )
        String z = "2147483647";
        //     (   )
        String c = "2147483648";
        //    
        if(x>0)
        {
            String y;
            //   String
            y = String.valueOf(x);
            //  
            y =new StringBuffer(y).reverse().toString();
            //         
            if(y.length()>=z.length()&&y.compareTo(z)>0)
                return 0;
            //    ,   int
            x = Integer.valueOf(y).intValue();
                return x;
        }
        else{
            x = -x;
            String y;
             //   String
            y = String.valueOf(x);
            //  
            y =new StringBuffer(y).reverse().toString();
            //         
            if(y.length()>=c.length()&&y.compareTo(c)>0)
                return 0;
            //    ,   int,      
            x = Integer.valueOf(y).intValue();
                return -x;
        }
    }
}