我写了这个:
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;
}
}
但我认为必须有更优雅的方式来做到这一点。有吗?
答案 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'