我有BigInt
BigInteger i = new BigInteger("5876934265987526278534978564378568734564937563487564327564376534875483753475");
我需要将其转换为[] int
。我怎么能快速做到这一点?
我的方法很慢
private static int[] convertDigitsToIntArray(java.math.BigInteger x) {
String s = x.toString();
int[] result = new int[s.length()];
for (int i = 0; i < s.length(); i++) {
result[i] = Integer.parseInt(String.valueOf(s.charAt(i)));
}
return result;
}
答案 0 :(得分:4)
将其转换为字符串,然后迭代字符:
int[] getArr(BigInteger num)
{
String str = num.toString();
int[] arr = new int[str.length()];
for (int i=0; i<arr.length; i++)
arr[i] = str.charAt(i)-'0';
return arr;
}
答案 1 :(得分:1)
可能会有所帮助......
public static void main(String[] args) {
BigInteger i = new BigInteger("5876934265987526278534978564378568734564937563487564327564376534875483753475");
String iStr = i.toString();
int[] intArray = new int[iStr.length()];
for(int j=0; j<iStr.length(); j++) {
intArray[j] = Integer.parseInt(String.valueOf(iStr.charAt(j)));
}
}
答案 2 :(得分:0)
尝试使用:
private static int[] convertDigitsToIntArray(java.math.BigInteger x) {
String s = x.toString();
int[] result = new int[s.length()];
for (int i = 0; i < s.length(); i++) {
result[i] = s.charAt(i) - '0';
}
return result;
}
答案 3 :(得分:0)
您可以将BigInteger转换为String,获取该字符串的char数组并迭代它:
java.math.BigInteger source = new java.math.BigInteger("5876934265987526278534978564378568734564937563487564327564376534875483753475");
char[] array = source.toString().toCharArray();
int[] result = new int[array.length];
for(int i=0; i<array.length; i++)
{
result[i] = array[i] - '0';
}