java实现整数反转

本文由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;
	    }	
	}
只听到从山间传来架构君的声音:
北山白云里,隐者自怡悦。有谁来对上联或下联?

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

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

二、取余方式

此代码由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入门教程

架构君码字不易,如需转载,请注明出处:https://javajgs.com/archives/35564
0

发表评论