题目
给你一个 32 位的有符号整数 x ,返回将 x 中的数字部分反转后的结果。
如果反转后整数超过 32 位的有符号整数的范围[−231, 231− 1] ,就返回 0。
假设环境不允许存储 64 位整数(有符号或无符号)。
链接
https://leetcode-cn.com/problems/reverse-integer/
代码
/**
* 07 整数反转
* 给你一个 32 位的有符号整数 x ,返回将 x 中的数字部分反转后的结果。
* 如果反转后整数超过 32 位的有符号整数的范围[−231, 231− 1] ,就返回 0。
* 假设环境不允许存储 64 位整数(有符号或无符号)。
* 输入:x = 123
* 输出:321
*/
@Test
public void test7(){
System.out.println(reverse(1534236469));
}
public int reverse(int x) {
//注意捕获异常
if(x>0){
StringBuffer s=new StringBuffer(String.valueOf(x));
s = s.reverse();
try {
return Integer.parseInt(String.valueOf(s));
} catch (NumberFormatException e) {
return 0;
}
}
if(x<0){
StringBuffer s=new StringBuffer(String.valueOf((0-x)));
s =s.reverse();
try {
return (0-Integer.parseInt(String.valueOf(s)));
} catch (NumberFormatException e) {
return 0;
}
}
return x;
}