将数组中的整数拆分为单个数字

Moh*_*and 1 java arrays integer split

我有一个数组:

int test[]={10212,10202,11000,11000,11010};
Run Code Online (Sandbox Code Playgroud)

我想将inetger值拆分为单个数字,并将它们作为单独的元素放在一个新数组中,这样我的数组现在是:

int test2[]={1,0,2,1,2,1,0,2,0,2,1,1,0,0,0,1,1,0,0,0,1,1,0,1,0};
Run Code Online (Sandbox Code Playgroud)

我该怎么做呢?我在java中这样做.

谢谢.

Che*_*Pls 10

int[] test={10212,10202,11000,11000,11010};
ArrayList<Integer> test2 = new ArrayList<Integer>();


for(int i = test.length -1; i >= 0; i--){
    int temp = test[i];
    while(temp>0){
        test2.add(0, temp%10);  //place low order digit in array
        temp = temp /10;        //remove low order digit from temp;
    }
}
Run Code Online (Sandbox Code Playgroud)

通过将条目的最低位数字放入arraylist的"front",并因此放在之前的低位数字/条目之前,这将完全符合您的要求.

如果需要它在Array中,ArrayList有一个toArray方法.


Jac*_*ack 5

你可以按照Mark的建议去,或将它们转换String为获得单个数字:

int test[]={10212,10202,11000,11000,11010};
ArrayList<Integer> test2 = new ArrayList<Integer>();

for (int i : test)
{
  String str = String.valueOf(i);
  for (int j = 0; j < str.length(); ++j)
    test2.add((int)(str.charAt(j)-'0'));
}
Run Code Online (Sandbox Code Playgroud)

因为更多内存有效的方法仍然涉及字符串将所有数字保持为一个字符串并在运行中计算int值:

class Digits
{
  String str;

  Digits(int[] nums)
  {
    StringBuilder sb = new StringBuilder();
    for (int i : nums)
      sb.append(String.valueOf(i));

    str = sb.toString();
  }

  int length()
  {
    return str.length();
  }

  int nth(int i)
  {
    return (int)(str.charAt(i)-'0');
  }
}
Run Code Online (Sandbox Code Playgroud)

请注意,CheesePls解决方案是正确的,因为它使用数学,因为它打算使用.我只是为了新手(并且只是为了解决这个问题)...

  • @zipcodeman:将每个数字存储在自己的`int`中.那么你的意思是什么? (2认同)