package com.javarush.task.task19.task1922;
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;
/*
Ищем нужные строки
1. Класс Solution должен содержать публичное статическое поле words типа List<String>, которое должно быть сразу проинициализировано.
2. Класс Solution должен содержать статический блок, в котором добавляются три или больше слов в список words.
3. Программа должна считывать имя файла с консоли (используй BufferedReader).
4. BufferedReader для считывания данных с консоли должен быть закрыт.
5. Программа должна считывать содержимое файла (используй FileReader).
6. Поток чтения из файла (FileReader) должен быть закрыт.
7. Программа должна выводить в консоль все строки из файла, которые содержат всего 2 слова из списка words.
*/
public class Solution {
public static List<String> words = new ArrayList<String>();
static {
words.add("файл");
words.add("вид");
words.add("В");
}
public static void main(String[] args) {
try(BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(System.in))) {
String fileName = bufferedReader.readLine();
try (BufferedReader fileReader = new BufferedReader(new FileReader(fileName))){
String lineFile;
while ((lineFile = fileReader.readLine()) != null) {
int counter = 0;
for (String listWord : words) {
if (lineFile.contains(listWord)){
counter++;
}
}
if (counter == 2){
System.out.println(lineFile);
}
}
}
}catch (IOException ignore) {
}
}
}
Павел
20 уровень
Валидатор не принимает. Что не так?
Решен
Комментарии (3)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Ksenia Volkova Java Developer в DXC Master
30 августа 2021, 09:23решение
Какую строку нужно выводить?
+2
Павел
30 августа 2021, 09:25
Спасибо, как раз доперло что он сейчас даже часть слова возьмет и плюсанет счетчик)
0
Ksenia Volkova Java Developer в DXC Master
30 августа 2021, 09:26
Ага. А строку "файл файл" не выведет.
0