遇到几个题都需要得到一个整数的各位数字,现记录一下,有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作为循

本文记录了在Java中获取整数各位数字的三种方法:末位取余法、整除法和转字符串法。通过创建getDigits1、getDigits2和getDigits3方法,将整数转换为包含各位数字的数组,并通过测试验证了方法的正确性。
最低0.47元/天 解锁文章
&spm=1001.2101.3001.5002&articleId=108291457&d=1&t=3&u=b410f73584534ad69e16e0b38576bb95)
7520

被折叠的 条评论
为什么被折叠?



