Проверка символа: str.contains("л")
А по ArrayList удобно идти с конца - тогда удаление текущего элемента или добавление (i+1)'ой копии на цикл не влияет.
Уважаемые авторы курса. Откорректируйте проверку заданий. В последней задаче у меня правильное решение, однако проверку не проходит, т.к. логика решения, видимо несколько отличается от "эталонной". Пришлось запустить с листингом из подсказки, чтобы закрыть задачу.
Текст моего решения.
public class Solution {
public static void main(String[] args) throws IOException {
//напишите тут ваш код
ArrayList<String> list = new ArrayList<String>();
Scanner sc = new Scanner(System.in);
for (int i = 0; i < 10; i++) {
list.add(sc.next());
}
for (int i = 1; i < 10; i++) {
if (!(list.get(i).length() >= list.get(i-1).length())) {
System.out.println(i);
break;
}
}
}
}
ArrayList динамически растягивает размер своего массива при добавлении и соответственно динамически, сразу же (!) его сокращает при удалении своего элемента из. Сокращенную форму цикла (х : х) при манипуляциях с отдельными элементами использовать невозможно. Поэтому до цикла-перебора создаем новый отдельный массив-лист и добавляем или не добавляем в него элементы. И соответственно его же потом и возвращаем. Так же используем операторы перехода в Java.
Проблема:
Когда с клавиатуры ввожу в список строки,
а потом вывожу список на консоль, то получается:
[стока 1, ,строка 2, ,строка 3]
и всё! А должно быть 5 строк.
Получается - каждое нажатие Enter дает еще пустую строку,
которая прячется между моими. И не придерешься!
5 строк,
как и планировалось! Тока не те...
Задачки успешно проходят javarush тестирование!😃👍
А если отдельно запускаю, то вот такая хрень😐
Какие будут мнения?
(заранее спасибо!)
На самом деле - прежде чем решать подобные задачи нужно пройти полный курс java collections framework где нибудь на стороннем сайте онлайн - университета. Я например, сначала прочитал и законспектировал теорию с Алишева, включая платный курс по углубленым знаниям java, затем частично проштудировал книгу Шилдта, пообщался с человеком, который в теме, и лишь потом пришел решать сюда задачи, чтобы понять - что я пропустил в теоретической подготовке. И такие дыры вылезают...
если нет необходимости в особом порядке перебора или опоре на индексы элементов, абстрагируйтесь от лишней информации заменив for на foreach. Если же порядок и/или количество важны, то foreach вряд ли подойдет. Обращаться к индексам удобнее в циклах со счетчиком.
На мой взгляд, требования к задаче "Р или Л" нуждаются в уточнении:
вместо "Метод fix должен удалять из списка строк все слова, содержащие букву "р"..." следует указать "Метод fix должен обеспечить ПРОПУСК тех слов из списка, которые..."
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ