Я знаю, что есть довольно все сообщения для преобразования символов в целые числа, строки до BigInteger
-s, int
-s to BigInteger
-s, ... но я просто не могу понять, почему это не так Работа.Преобразование символа в BigInteger
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
я не вижу, где я мог бы быть неправильно, поэтому я был бы признателен, если кто-то может указать на мою ошибку.
'BigInteger сумма = 0 'не является законной, поскольку BigInteger является объектом. –
Вы ошибаетесь, не уделяя достаточного внимания. Компилятор java действительно хорош, говоря вам, что не так. Это требует только дисциплины со стороны читателя. Значение: читать сообщения компилятора слово за словом; самое главное: обратите внимание на номер строки, на которую он указывает. Затем прочитайте код на этой строке слово за словом. Прочтите сообщение об ошибке еще раз. Как и в вашем примере: не предполагайте, что проблема связана с персонажами. Поскольку сообщение ясно указывает на строку BigInteger sum = 0 ... – GhostCat