LeetCode---------Reverse Integer解法

题目如下:


 

Reverse digits of an integer.

Example1: x = 123, return 321
Example2: x = -123, return -321

Note:
The input is assumed to be a 32-bit signed integer. Your function should return 0 when the reversed integer overflows.


 

 

大致翻译:


将一个整数反转.

例子1:x = 123, 返回321

例子2:x = -123, 返回-321

注意:

假设输入是一个32位的有符号整数。当转换整数超出界限时返回0。


 

 

    整数的反转并不容易,但是字符串的反转比较简单,甚至有函数可以直接实现字符串的反转。所以我们考虑首先将整数转换为字符串,然后转换字符串,再转换为整数。

    由于String类中并没有对应的反转字符串的API,但是StringBuffer类中有反转字符传API:reverse().

    需要注意:当字符串转换为整数时可能会出错,有许多原因,包括格式不匹配、转换后的数超过int的界限等。所以应该加入异常的捕捉和处理。而题目中也要求超出界限返回0.

    【Java代码】如下:

public class Solution {
    public int reverse(int x) {
        String s = x + "";
        String symbol = "";
        //判断是否有负号
        if(s.charAt(0) == '-'){
            symbol="-";
            s = s.substring(1, s.length());
        } 
        StringBuilder str = new StringBuilder(s);
        //反转字符串
        s = str.reverse().toString();
        s = symbol + s;
        try{
            return Integer.parseInt(s);
        }catch(Exception e){
            //如果转换int出错,则返回0
            return 0;
        }
    }
}

  

如果有任何问题,欢迎跟我联系:xiaomenxiaomen@qq.com

我的github地址:github.com/WXRain

    

 

posted @ 2017-05-22 15:26  安忆丶  阅读(205)  评论(0编辑  收藏  举报