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