我写了这个:
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;
}
}
但我认为必须有一种更优雅的方式来做到这一点。有没有?
我写了这个:
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;
}
}
但我认为必须有一种更优雅的方式来做到这一点。有没有?
如果您对字符串感到满意,您可以这样做:
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]);
考虑使用将整数转换为字符串Integer.toString
,然后使用string.toCharArray()
并转换回来。这可能会也可能不会更“优雅”,具体取决于您的世界观。
这可能是一种方式(我对此并不感到非常自豪:))
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'