将字符转换为BigInteger

时间:2016-03-18 17:21:24

标签: java biginteger

我知道有很多帖子可以将字符转换为整数,字符串转换为BigInteger - s,int - s转换为BigInteger - s,...但我可以& #39;弄清楚为什么这不起作用。

Scanner sc = new Scanner(System.in);

BigInteger sum = 0;
String line = "";
while (sc.hasNext()) {
line = sc.next();
for (char character: vrstica.toCharArray()) {
    sum = sum.add(BigInteger.valueOf(Character.getNumericValue(character)));
    }
}

我已导入ScannerBigInteger。输入数据由带数字的行构成,如下所示:7218904932283439201 \ n7218904932283439201 ...

如果我理解正确,BigInteger - s的添加内容应如下所示:bigInteger1.add(bigInteger2),其中两个数字都是BigInteger类型。所以我应该将char类型的字符转换为int类型,然后使用方法intBigInteger值转换为BigInteger.valueOf(),这需要{{1}参数。

我得到的错误如下:int

我没有看到我可能出错的地方,所以如果有人能指出我的错误,我会很感激。

1 个答案:

答案 0 :(得分:5)

您正在尝试将BigInteger字面值分配给BigInteger sum = 0; 对象。

BigInteger sum = BigInteger.ZERO;

请改为使用以下

template<typename T>
ostream& operator<<(ostream& lhs, const CURRENCY<T>& rhs) {
  lhs << /*output rhs the way you want here*/;
}