Java【常见问题】得到一个整数的各位数字(多种解法)

本文记录了在Java中获取整数各位数字的三种方法:末位取余法、整除法和转字符串法。通过创建getDigits1、getDigits2和getDigits3方法,将整数转换为包含各位数字的数组,并通过测试验证了方法的正确性。
摘要由CSDN通过智能技术生成

Java【常见问题】得到一个整数的各位数字

遇到几个题都需要得到一个整数的各位数字,现记录一下,有3种解法:1.末位取余法,2.整除法,3.转字符串法。

创建了3个方法,均传入一个整型数,返回存有各位数字的数组。方法名分别为:getDigits1,getDigits2,getDigits3,分别对应3种解法。

方法1:末位取余法

请看下图中的计算过程,将该数不断除以10,得到的商继续除以10,直到商为0,每次除法得到的余数,顺序反过来,就是每位数字。
末位取余法

//末位取余法
//不断除以10,得到的商继续除以10,直到商为0,每次除法得到的余数,顺序反过来,就是每位数字
public static int[] getDigits1(int num) {
   
	//取绝对值
	num = Math.abs(num);
	//得到该数的位数
	int length = (num+"").length();
	//创建数组,存放各位数字
	int[] digits = new int[length];
	
	//数有多长,就会做几次除法
	for (int i=0;i<length;i++) {
   
		//商
		int quotient = num/10;
		//余数
		int remainder = num%10;
		digits[length-1-i] = remainder;
		//商作为下次除法的被除数
		num = quotient;
	}
		
	return digits;
}

这样效率要高一些,不先将其转为String得出其长度,而是用商不为0作为循

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值