Не проходит два пункта валидатора, а именно:
1. Метод fix должен удалять из списка строк все слова, содержащие букву "р". Исключение: слова содержащие и букву "р" и букву "л" - их нужно оставить.
Проверь, что метод fix удаляет слова содержащие букву "р".
2. Метод fix должен удваивать слова, содержащие букву "л" (добавлять еще один элемент с этим словом). Исключение: слова содержащие и букву "л" и букву "р" - их не нужно удваивать.
Код в методе следующий:
for (int i = 0; i < strings.size(); i++) {
String s = strings.get(i);
if (!(s.contains("р") && s.contains("л"))) {
if (s.contains("л")) {
strings.add(strings.get(i));
i++;
} else if (s.contains("р")) {
strings.remove(i);
i--;
}
else if ((s.contains("р") && s.contains("л")) || (!s.contains("р") && !s.contains("л"))) {
continue;
}
}
}package com.javarush.task.task07.task0716;
import java.util.ArrayList;
/*
Р или Л
*/
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) {
//напишите тут ваш код
// 1. Программа не должна считывать данные с клавиатуры.
// 2. Метод fix должен удалять из списка строк все слова, содержащие букву "р". Исключение: слова содержащие и букву "р" и букву "л" - их нужно оставить.
// 3. Метод fix должен удваивать слова, содержащие букву "л" (добавлять еще один элемент с этим словом). Исключение: слова содержащие и букву "л" и букву "р" - их не нужно удваивать.
// 4. Метод fix не должен ничего делать со словами, содержащими и букву "л" и букву "р".
// 5. Метод fix не должен ничего делать со словами, которые не содержат ни букву "л", ни букву "р".
for (int i = 0; i < strings.size(); i++) {
String s = strings.get(i);
if (!(s.contains("р") && s.contains("л"))) {
if (s.contains("л")) {
strings.add(strings.get(i));
i++;
} else if (s.contains("р")) {
strings.remove(i);
i--;
}
else if ((s.contains("р") && s.contains("л")) || (!s.contains("р") && !s.contains("л"))) {
continue;
}
}
}
/*
for (int i = strings.size() - 1; i >= 0; i--) {
if (strings.get(i).indexOf("р") >= 0 && strings.get(i).indexOf("л") < 0) {
strings.remove(strings.get(i));
}
}
for (int i = strings.size() - 1; i >= 0; i++) {
if (strings.get(i).indexOf("л") >= 0 && strings.get(i).indexOf(i) < 0) {
strings.add(strings.get(i));
}
}*/
return strings;
}
}
как ты думаешь, слово "рыбалка" должно удалиться?окей. а слово "рыба" или "рама" удаляется? у тебя это условие никогда не выполнится.