将数字的数字拆分为整数数组

时间:2016-04-18 13:53:13

标签: java math split integer

我想要分割integer,所以我可以判断它是否是 Dudeney数字和/或阶乘数字。我尝试了但感觉它可能更好,但不知道如何改进它。我试图解决的主要问题是为完成任务而编写的代码量。假设输入的数字是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++;
}

1 个答案:

答案 0 :(得分:0)

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

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