题目:
给定一个范围为 32 位 int 的整数,将其颠倒。
例 1:
输入: 123
输出: 321
例 2:
输入: -123
输出: -321
例 3:
输入: 120
输出: 21
思路:
用StringBuffer也很基础了,但是有个问题是int太大了容易溢出。问题里说溢出则一律取0,那就很简单了。写个异常捕获,出NumberFormatException异常固定输出0。
代码:
public class Solution007 {
public static int reverse(int x) {
int result;
StringBuffer sb = new StringBuffer();
sb.append(x);
sb.reverse();
try {
if (x>=0){
result = Integer.valueOf(sb.toString());
}else {
result = Integer.parseInt(sb.substring(0,sb.length()-1).toString());
result = 0 - result;
}
}catch (NumberFormatException e){
result = 0;
}
return result;
}
public static void main(String[] args) {
System.out.println(reverse(1534236469));
}
}