将BigInteger拆分为数字并将它们放入数组中

时间:2012-11-03 06:14:08

标签: java biginteger

我希望将以下biginteger分成数字并将其放入数组中。

BigInteger = 123456789123456789123456789123456789
array[]={1,2,3,4,5,6,7,8,9,1,2,3,4,5,6,7,8,9,1,2,3,4,5,6,7,8,9,1,2,3,4,5,6,7,8,9,}

我怎么能这样做?谢谢。我搜索了它但找不到更好的答案。

2 个答案:

答案 0 :(得分:5)

可以这样做:

BigInteger value = new BigInteger("123456789123456789123456789123456789");
List<Integer> list = new ArrayList<Integer>();
BigInteger ten = new BigInteger("10");
while (!value.equals(BigInteger.ZERO))
{
    list.add(0, value.mod(ten).intValue());
    value = value.divide(ten);
}

答案 1 :(得分:1)

只需执行toString并将每个字符转为int并添加到int的数组

String biStr = bi.toString();
int[] ints = new int[biStr.length()];
for(int i=0; i<biStr.length(); i++) {
    ints[i] = Integer.parseInt(String.valueOf(biStr.charAt(i)))
}