public int reverse(int x){
int INT_MAX =Integer.MAX_VALUE; //获取int的最大值2147483647
int INT_MIN =Integer.MIN_VALUE; //获取int的最小值-2147483648
if(x == 0){
return x;
}
boolean flag =false;
long b =0;
if(x<0 && x>INT_MIN){
b=Math.abs(x);
flag=true;
}else if(x ==INT_MIN){
b=2147483648l; //最后一个是小写l,long类型的
}else{
b=x;
}
String y = b+"";
//string 转成stringbuffer
StringBuffer stringBuffer = new StringBuffer(y);
//反转stringbuffer对象
StringBuffer reverse = stringBuffer.reverse();
//转回string
String z = new String(reverse);
//string转long
long d = Long.parseLong(z);
if(d>INT_MAX ||d<INT_MIN){
return 0;
}else{
try{
if(flag){
return 0 - Integer.valueOf(z).intValue();
}else{
return Integer.valueOf(z).intValue();
}
}catch(Exception e){
return 0;
}
}
}
给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。注意: 假设我们的环境只能存储得下 32 位的有符号整数,则其数值范围为 [-2147483648, 214748364]
最新推荐文章于 2022-11-02 21:40:33 发布