我坚持一个可能很简单的事情,但我无法弄明白。 所以这是代码:
List<BigInteger> list = new ArrayList<BigInteger>();
for (int i = 1; i <= 12; i++) {
list.add(new BigInteger("i"));
}
我得到以下例外:
线程中的异常&#34; main&#34;
java.lang.NumberFormatException
:输入字符串:"i"
我不明白,我是1-12之间的整数,它应该可以转换为BigInteger。
答案 0 :(得分:3)
字符串"i"
不是BigInteger
的有效表示。
由于没有构造函数在BigInteger
类中使用单个int
参数,因此可以使用String.valueOf
返回整数i
的字符串表示形式:
list.add(new BigInteger(String.valueOf(i)));
答案 1 :(得分:1)
List<BigInteger> list = new ArrayList<BigInteger>();
for (int i = 1; i <= 12; i++) {
list.add(BigInteger.valueOf(i)); // Fix
}
这种方式比所选答案更有效,因为所选方法首先将int
转换为String
,然后将String
解析回int
,这是Integer
真的很慢。