给你一个 32 位的有符号整数 x ,返回将 x 中的数字部分反转后的结果。
如果反转后整数超过 32 位的有符号整数的范围 [−231, 231 − 1] ,就返回 0。
一
public static int reverse(int x) {
int i = 0;
if(x>0){
String s = String.valueOf(x);
StringBuilder sb = new StringBuilder(s);
String s1 = sb.reverse().toString();
try {
i = Integer.parseInt(s1);
} catch (NumberFormatException e) {
return 0;
}
} else {
int abs = Math.abs(x);
String s = String.valueOf(abs);
StringBuilder sb = new StringBuilder(s);
String s1 = sb.reverse().toString();
try {
i = Integer.parseInt(s1) * (-1);
} catch (NumberFormatException e) {
return 0;
}
}
return i;
}
二.
public static int reverse(int x) {
long n = 0;
while(x != 0) {
n = n*10 + x%10;
x = x/10;
}
return (int)n==n? (int)n:0;
}