我知道有很多关于将字符转换为整数,将字符串转换为BigInteger
-s,int
-s转换为BigInteger
-s的文章,但是我只是不知道为什么这行不通。
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)));
}
}
我确实导入了
Scanner
和BigInteger
。输入数据由带数字的行构成,如下所示:7218904932283439201 \ n7218904932283439201 ...如果我理解正确,则
BigInteger
-s的加法应这样写:bigInteger1.add(bigInteger2)
,其中两个数字均为BigInteger
类型。因此,我应该将类型为char
的字符转换为类型为int
,然后使用方法int
将该BigInteger
值转换为BigInteger.valueOf()
,该方法带有一个int
参数。我收到的错误如下:
incompatible types: int cannot be converted to BigInteger
我看不到哪里可能出错,因此,如果有人指出我的错误,我将不胜感激。
最佳答案
您试图将int
文字分配给BigInteger
对象。
BigInteger sum = 0;
改为使用以下内容
BigInteger sum = BigInteger.ZERO;