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

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

これは1つの方法かもしれません(私はこれについてあまり誇りに思っていません:))

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 に答える
0

Integer.toStringを使用して整数を文字列に変換し、次に使用して元に戻すことを検討してくださいstring.toCharArray()。これは、あなたの世界観に応じて、より「エレガント」になる場合とそうでない場合があります。

于 2012-04-17T00:29:30.610 に答える