java实现整数反转

互联网 20-1-6

一、将 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; 	    }	 	}

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

(推荐学习视频教程:java视频教程)

二、取余方式

	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入门教程

以上就是java实现整数反转的详细内容,更多内容请关注技术你好其它相关文章!

来源链接:
免责声明:
1.资讯内容不构成投资建议,投资者应独立决策并自行承担风险
2.本文版权归属原作所有,仅代表作者本人观点,不代表本站的观点或立场
标签: 反转
上一篇:php获取远程图片并下载保存到本地的方法分析 下一篇:关于java正则?:、?=、?!的一些理解

相关资讯