【问题标题】:Splitting Digits of a Number into an Integer Array [duplicate]将数字的数字拆分为整数数组[重复]
【发布时间】:2016-04-18 13:53:12
【问题描述】:

我希望拆分 integer,因此我可以判断它是 杜德尼数 和/或阶乘数。我做了一个尝试,但感觉它可能会更好,但不知道如何改进它。我要解决的主要问题是为完成任务而编写的代码量。假设输入的数字是 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++;
}

【问题讨论】:

标签: java math split integer


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 2016-07-03
    • 1970-01-01
    • 2010-12-26
    • 1970-01-01
    • 1970-01-01
    • 2011-02-12
    • 2011-12-20
    • 1970-01-01
    • 2021-04-05
    相关资源
    最近更新 更多