package com.javarush.task.task07.task0716;

import java.util.ArrayList;

/*
Р или Л

1. Создай список слов, заполни его самостоятельно.
2. Метод fix должен:
2.1. удалять из списка строк все слова, содержащие букву "р"
2.2. удваивать все слова содержащие букву "л".
2.3. если слово содержит и букву "р" и букву "л", то оставить это слово без изменений.
2.4. с другими словами ничего не делать.


*/

public class Solution {
    public static void main(String[] args) {
        ArrayList<String> strings = new ArrayList<String>();
        strings.add("роза");
        strings.add("лоза");
        strings.add("лира");
        strings = fix(strings);

        for (String string : strings) {
            System.out.println(string);
        }
    }

    public static ArrayList<String> fix(ArrayList<String> strings) {
        //напишите тут ваш код
        String buffer; // буферная строка
        int i;
        for (i = 0; i < strings.size(); i++) {
            buffer = strings.get(i);  // взятие строки для преобразования в char
            ArrayList<Character> chars = new ArrayList<Character>(); // создание char листа
            for (char c : buffer.toCharArray()) {  // преобразование строки в char
                chars.add(c); // добавление букв в лист chars
            }


            int j;
            for (j = 0; j < chars.size(); j++) {   // пробегаем по буквам char
                if (chars.get(j) == 'р') { // если равно р , то запускаем дополнительную проверку
                    int k;  // доп проверка
                    for (k = j; k < chars.size(); k++) {
                        if (chars.get(k) == 'л') break; // если и "р" и "л" - пропуск
                        else strings.remove(i); // удаление элемента ,если не нашли "л"
                    }
                }
                else if (chars.get(j) == 'л') { // если равно л , то запускаем доп проверку
                    int k; // доп проверка
                    for (k = j; k < chars.size(); k++) {
                        if (chars.get(k) == 'р') break; // если и "р" и "л" - пропуск
                        else strings.add(i, buffer); // дублируем элемент ,если не нашли "р"
                    }

                }


            }
        }

        return strings;
    }
}
Exception in thread "main" java.lang.IndexOutOfBoundsException: Index: 0, Size: 0 at java.util.ArrayList.rangeCheck(ArrayList.java:657) at java.util.ArrayList.remove(ArrayList.java:496) at com.javarush.task.task07.task0716.Solution.fix(Solution.java:49) at com.javarush.task.task07.task0716.Solution.main(Solution.java:24)