当前位置: 首页 > 知识库问答 >
问题:

如何将字符串转换为大整数?

宫俊远
2023-03-14

我试图从标准输入中读取一些非常大的数字,并将它们相加。

然而,要添加到BigInteger,我需要使用BigInteger。价值(长)

private BigInteger sum = BigInteger.valueOf(0);

private void sum(String newNumber) {
    // BigInteger is immutable, reassign the variable:
    sum = sum.add(BigInteger.valueOf(Long.parseLong(newNumber)));
}

这很好,但是作为BigInteger。valueOf()只需要一个,我不能添加大于最大值(9223372036854775807)的数字。

每当我尝试添加9223372036854775808或更多时,我就会得到一个NumberFormatException(这完全是意料之中的)。

是否有类似于biginger的东西。parseBigInteger(字符串)


共有3个答案

狄珂
2023-03-14

BigIntger有一个构造函数,您可以在其中将字符串作为参数传递。

试试下面,

private void sum(String newNumber) {
    // BigInteger is immutable, reassign the variable:
    this.sum = this.sum.add(new BigInteger(newNumber));
}
通京
2023-03-14

根据文件:

BigInteger(字符串值)

将BigInteger的十进制字符串表示形式转换为BigInteger。

这意味着您可以使用String来初始化BigIntger对象,如以下片段所示:

sum = sum.add(new BigInteger(newNumber));
侯向文
2023-03-14

使用构造函数

BigInteger(字符串值)

将BigInteger的十进制字符串表示形式转换为BigInteger。

Javadoc

 类似资料:
  • 问题内容: 我在使用Python将字符串更改为大写时遇到问题。在我的研究中,我知道了,但是没有用。 如下代码: 给出此错误信息: 我的问题是: 如何在Python中将字符串转换为大写? 问题答案: 请参见字符串方法。

  • 问题内容: 如何在JavaScript中将字符串转换为整数? 问题答案: 最简单的方法是使用本机函数: 如果这对您不起作用,则有 parseInt , 一元加号 , 带有floor的parseFloat 和 Math.round 方法。 parseInt: 一元加号,如果您的字符串已经是整数形式: 如果您的字符串是浮点数或可能是浮点数,并且您想要一个整数: 或者,如果您要多次使用Math.floo

  • 问题内容: 有什么方法可以将null转换为Integer。null实际上是一个字符串,我在我的服务层中传递该字符串,将其接受为整数。因此,每当我尝试将null字符串强制转换为Integer时,都会引发异常。但是我必须将null转换为Integer。 问题答案: 您 不能 从String强制转换为Integer。但是,如果您尝试将字符串转换为整数,并且必须提供处理字符串的实现,请查看以下代码片段:

  • 问题内容: 给定一个数字: 将其转换为字符串的“最佳”方法是: 问题答案: 有多种方法: (我的偏爱) (我不知道编译器如何处理它,也许它和上面一样有效)

  • 问题内容: 我有一个整数 在声明中,我必须将其与一些字符串进行比较。我不能在开始时设置为字符串,因为必须在循环中将其递减。 如何转换? 问题答案: 我找到了答案。 将整数转换为字符串: 将字串转换为整数:

  • 问题内容: 有没有人能将不安全的字符串转换为? 该字符串通常回来为:或类似的东西。 在这种情况下,我要。如果我想。我从不希望该方法失败,但是我不愿意尝试,除非通过它只是为了隐藏错误(以防万一发生极端情况)。 问题答案: 在这种情况下,您确实有一种避免/的方法,尽管我不建议这样做(假设您的输入字符串名为,并且您处于必须返回某些内容的函数中): 将在部分就是你回什么是你想要比如说,如果是,空,全空间,