0

我正在尝试将 BigInteger 或包含 no.s 的 String 变量转换为 BigInteger 数组。我怎样才能做到这一点。请回复。例如。

BigInteger = 278490638904984
BigInteger Array = [2,7,8,4,9,0,6,3,8,9,0,4,9,8,4]
4

4 回答 4

3
public static void main(String[] args) {
    String s = "278490638904984";
    BigInteger[] big = new BigInteger[s.length()];
    for (int i = 0; i < s.length(); i++) {
        big[i] = new BigInteger(String.valueOf(s.charAt(i)));
    }
    System.out.println(Arrays.toString(big));
}

输出:

[2, 7, 8, 4, 9, 0, 6, 3, 8, 9, 0, 4, 9, 8, 4]
于 2013-03-30T18:18:41.937 回答
1

你应该能够做到这一点:

BigInteger bi = new BigInteger(myString);

然后,您必须将其分配给 BigIntegers 数组中的一个位置。

请注意,如果您的字符串无法转换,则会抛出 NumberFormatException。

于 2013-03-30T18:13:27.577 回答
1

出于什么目的?有点奇怪……

BigInteger   bi = new BigInteger( "278490638904984" );
String       s  = bi.toString();
int          len = s.length();
BigInteger[] digits = new BigInteger[len];
for( int i = 0; i < len; ++i ) {
   digits[i] = BigInteger.valueOf( s.charAt(i)-'0' );
}
于 2013-03-30T18:17:14.447 回答
0

尝试将 BigInteger 值转换为 String(),然后像 str.length() 一样获取字符串的长度并创建所需大小的数组。

在此之后,您可以用值填充数组:

array[i] = new BigInteger(str.substring(i, i+1));

这不是出色的解决方案,但应该可以完成工作。

于 2013-03-30T18:23:27.853 回答