- 直接转换成long类型数据
- 再判断大于0和小于0
- 使用int z记录是正数还是负数
- 反转后判断是否超出int类型的范围
public int reverse(int x) {
int res = 0;
int z = 0;
long y = x;
if (y < 0) {
z = -1;
y = -y;
} else {
z = 1;
}
String str = String.valueOf(y);
StringBuffer buffer = new StringBuffer(str);
buffer = buffer.reverse();
str = new String(buffer);
y = Long.parseLong(str);
if (y > Integer.MAX_VALUE || (-y < Integer.MIN_VALUE && z == -1)) {
res = 0;
} else {
res = (int) (z * y);
}
return res;
}
p.s.欢迎指正