Почему выдает исключение?

Программа должна считать сумму всех чисел строки. Подскажите, пожалуйста, почему вылетает исключение?

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, но будет).

→ Ссылка