java整数翻转_java实现整数反转的两种方式

java实现整数反转的两种方式

发布时间:2020-05-19 15:59:17

来源:亿速云

阅读:1079

作者:小新

今天小编给大家分享的是java实现整数反转的两种方式,相信很多人都不太了解,为了让大家更加了解,所以给大家总结了以下内容,一起往下看吧。一定会有所收获的哦。

一、将 int 整数通过 String 转换,溢出捕获class Solution {

public int reverse(int x) {

long nums = 0;

int temp = 1;

try {

temp = x / Math.abs(x);

StringBuilder num = new StringBuilder();

num.append(Math.abs(x));

nums = Long.parseLong(num.reverse().toString());

if(nums > Math.pow(2, 31) - 1) {

return 0;

}

} catch (Exception e) {

// TODO: handle exception

return 0;

}

return (int)nums*temp;

}

}

字符串转换的效率较低且使用较多库函数。

二、取余方式class Solution {

public int reverse(int x) {

int ans = 0;

while(x != 0) {

// 判断溢出

if((ans * 10) / 10 != ans) {

ans = 0;

break;

}

// ans*10 没有溢出

ans = ans * 10 + x % 10;

x /= 10;

}

return ans;

}

}

(ans * 10) / 10 其中的 ans*10 ,java虚拟机内部实际上是进行了数值类型提升,即溢出时,用long类型数据暂时存储,最后通过变窄转换,保留低32位数值得到 (ans * 10) / 10 != ans 。因此是不能满足只存储32位整数的条件的。

以上就是java实现整数反转的两种方式的简略介绍,当然详细使用上面的不同还得要大家自己使用过才领会。如果想了解更多,欢迎关注亿速云行业资讯频道哦!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值