Почему выдает исключение?
Программа должна считать сумму всех чисел строки. Подскажите, пожалуйста, почему вылетает исключение?
public class Task {
public static void main(String[] args) {
System.out.println(calculateSum("11111111111"));
}
public static int calculateSum(String input) {
int value = 0;
try {
value = Integer.parseInt(input);
} catch (NumberFormatException e) {
e.printStackTrace();
}
int sum = 0;
while (value > 0) {
sum += value % 10;
value /= 10;
}
return sum;
}
}
Ответы (1 шт):
Автор решения: Roman Konoval
→ Ссылка
Максимальное значение для типа Integer в java 2147483647, т.е. чуть больше 2 миллиардов, а у вас больше 11 миллиардов.
Не помещается значение в тип Integer используйте BigDecimal.
Для Long тоже будет ограничение на длину строки (больше чем для Integer, но будет).
