是否有更好(更快)的方法将数字除以数字?

时间:2012-04-17 00:24:33

标签: java

我写了这个:

void blah(int num)
{
    int numOfDigits = Math.log10(num);
    int arr[] = new int[numOfDigits + 1];
    for(int i = numOfDigits; i>0; i--)
    {
        arr[i] = num%10;
        num = num/10;
    }
}

但我认为必须有更优雅的方式来做到这一点。有吗?

3 个答案:

答案 0 :(得分:2)

如果你对Strings感到满意,你可以这样做:

String[] arr = Integer.toString(num).split("(?<=\\d)");

如果您想从此转到int[]

int[] arrint = new int[arr.length];
for (int i = 0; i < arr.length; i++)
     arrint[i] = Integer.parseInt(arr[i]);

答案 1 :(得分:0)

考虑使用Integer.toString将整数转换为字符串,然后使用string.toCharArray()并转换回来。根据您的世界观,这可能会或可能不会更“优雅”。

答案 2 :(得分:0)

这可能是一种方式(我对此不感到非常自豪:))

Integer number = 1234567890;               // input number
String temp = number.toString();           // convert to string
int [] output = new int[temp.length()];

for (int i=0 ; i< temp.length(); i++)     // get character at index i from string
    output[i] = temp.charAt(i) - '0';      // convert it to number by removing '0'