Циклы ломают всё

121
25 марта 2021, 17:00

Есть: массив StringBuilder but, StringBuilder str и массив int indexes. Добавляю в массив строителей строки до тех пор, пока а меньше размера другого массива (в этом массиве нужные индексы)

ArrayList<StringBuilder> but = new ArrayList<>();
for (a = 0; a < indexes.size(); a++){
but.add(str);};

Теперь мне нужно удалить из 1-го StringBuilder (из массива) символы до определенного индекса (из другого массива). Я делаю это так:

but.get(1).delete(0, indexes.get(1));

И это работает (и с 0, и с 2 вместо 1), но если я сделаю цикл:

a = 0;
while (a < indexes.size()){
but.get(a).delete(0, indexes.get(a));}

То приложение просто останавливается, крашится, вылетает.

UPD: Mea kulpa, дамы и господа, я дурак, но даже так:

a = 0;
while (a < indexes.size()){
but.get(a).delete(0, indexes.get(a));
a++;}

он ломается.

Answer 1

Поставь проверку на длинну but, чтобы когда длинна меньше but, чем кол-во символов, которые ты хочешь обрезать не вылетала ошибка. Также эта проверка нужна, чтобы ты циклом не изрезал массив до пустосты.

READ ALSO
Подключение к камере Android

Подключение к камере Android

Пытаюсь выводить изображение с камеры на экран, делаю это так:

103
Не работает foreach в JSTL

Не работает foreach в JSTL

Вот jsp файл:

177
Не пойму почему не проходит тест

Не пойму почему не проходит тест

это моя тестовая конфигурация:

113
List vs ArrayList vs Vector

List vs ArrayList vs Vector

Хочу узнать в чём глобальная разница между ArrayList и VectorЯ поискал и нашёл только информацию о том,что вектор синхронизирован ( с чем?)

103