Вы хотите counter.length()
, а не counter.length()-1
, когда вы создаете массив.Индексы массива имеют значение n-1
, а не длину строки (которая составляет n
).
Когда вы проходите через массив, вы хотите начать с count-1
и идти внизоттуда.
Если число 12345
, то ваш массив должен иметь размер 5
, чтобы содержать 5 цифр, а индексы начинаются с 0-4
.Соответственно, вы хотите создать массив с count
и начать печать с count-1
.
Это должно решить проблему индекса за пределами границ, но у вас есть и другие проблемы.
Обратите внимание, что ваш цикл остановится, как только он найдет ноль, даже если он находится в середине цифр.Поэтому, если у вас есть 3405, ваше приложение напечатает 5, а затем остановится.
Кроме того, комментарии к вашему вопросу намекают на общие более простые подходы, хотя то, что вы делаете, хорошо для изучения.