有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java将循环中的BigInteger添加到列表中

我被一件可能很简单的事情困住了,但我就是搞不懂。 这就是代码:

List<BigInteger> list = new ArrayList<BigInteger>();
for (int i = 1; i <= 12; i++) {
    list.add(new BigInteger("i"));
}

我得到以下例外:

Exception in thread "main" java.lang.NumberFormatException: For input string: "i"

我不明白,我是一个介于1-12之间的整数,应该可以转换成一个大整数


共 (2) 个答案

  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

  2. # 2 楼答案

    字符串"i"不是^{}的有效表示形式

    由于在^{}类中没有接受单个int参数的构造函数,因此可以使用String.valueOf返回整数i的字符串表示形式:

    list.add(new BigInteger(String.valueOf(i)));