热门IT资讯网

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

发表于:2024-11-29 作者:热门IT资讯网编辑
编辑最后更新 2024年11月29日,今天小编给大家分享的是java实现整数反转的两种方式,相信很多人都不太了解,为了让大家更加了解,所以给大家总结了以下内容,一起往下看吧。一定会有所收获的哦。一、将 int 整数通过 String 转换

今天小编给大家分享的是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实现整数反转的两种方式的简略介绍,当然详细使用上面的不同还得要大家自己使用过才领会。如果想了解更多,欢迎关注行业资讯频道哦!

0