Во-первых, попробуйте на практике отладку. Это простой случай. Либо используйте запуск в режиме отладки (установите точку останова на строке String temp = bs.substring(from, to);
), либо напечатайте значения from
и to
перед той же строкой. Это поможет понять, что происходит.
Решение:
Если bs
не равно нулю, у вас всегда будет StringIndexOutOfBoundsException. Потому что вы не проверяете, указывает ли to
на несуществующий индекс bs
String. Простейшим примером первого будет пустая строка: bs == ""
.
Одним из решений может быть замена условия в while (to <= bs.length())
.