Java 将数字拆分为整数数组

Java 将数字拆分为整数数组,java,math,split,integer,Java,Math,Split,Integer,我想拆分一个整数,这样我就能知道它是杜德尼数还是阶乘数。我已经尝试过了,但感觉可以更好,但不知道如何改进。我试图解决的主要问题是为完成任务而编写的代码量。假设输入的数字是3579 int number = input.nextInt(); double temp = number; int counter = 0; while(temp >1){ temp/=10; counter++; } 这段代码只获取数字的长度,因此我可以使数组具有适当的长度 int[] numb

我想拆分一个
整数
,这样我就能知道它是杜德尼数还是阶乘数。我已经尝试过了,但感觉可以更好,但不知道如何改进。我试图解决的主要问题是为完成任务而编写的代码量。假设输入的数字是3579

int number = input.nextInt();
double temp = number;
int counter = 0;

while(temp >1){
    temp/=10;
    counter++;
}
这段代码只获取数字的长度,因此我可以使数组具有适当的长度

int[] numberSplitted = new int[counter];
int divisor = (int)Math.pow(10, (counter-1)); // = 1000 in this case

int locationInArray = 0;

while(divisor != 0){
    int result = number / divisor;   //result = 3579/1000 = 3;
    number %= divisor;               // number = 3579%1000 = 579; 
    divisor /= 10;                   // divisor = 100;
    numberSplitted[locationInArray] = result;
    locationInArray++;
}

您可以将数字转换为
字符串
,并将其拆分为单个数字。完成此操作后,可以使用
for
循环,并将
字符串
数组的内容逐个转换为
int

String[] stringNumber = Integer.toString(number).split("(?<=.)"); 
for(int i = 0; i < stringNumber.length; i++) {
    numberSplitted[i] = Integer.valueOf(stringNumber[i]);
}
String[]stringNumber=Integer.toString(number).split(“(?查看