1

我写了这个:

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;
    }
}

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

4

3 回答 3

2

如果您对字符串感到满意,您可以这样做:

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]);
于 2012-04-17T00:29:04.027 回答
0

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

于 2012-04-17T00:29:30.610 回答
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'
于 2012-04-22T09:55:01.847 回答