Объясните как работает механизм кода
public class Solution {
public static List<String> words = new ArrayList<String>();
static {
words.add("файл");
words.add("вид");
words.add("В");
}
public static void main(String[] args) throws IOException {
String fileout;
try(BufferedReader buff = new BufferedReader(new InputStreamReader(System.in))){
fileout = buff.readLine();
}
try(BufferedReader file = new BufferedReader(new FileReader(fileout))){
while(file.ready()){
int cout = 0;
String line = file.readLine();
String[] str = line.split(" ");
for(String m : str){
for(String k: words){
if(m.equals(k)){
cout++;
}
}
}
if (cout == 2){
System.out.println(line);
}
}
}
}
}
Задача: вывести в консоль строки(из файла) в которых есть слова из массива words. Как работает код в середине while. Объясните пожалуйста. Я не могу понять как в if(cout == 2 ) выводятся именно те строки в которых есть слова из words.
Ответы (1 шт):
Автор решения: Barmaley
→ Ссылка
- Читаем строку
- Строку разбиваем на слова (маркер разделителя слова пробел) -
split(" ") - В цикле проходим все слова
- Каждое слово проверяем на совпадения из массива
words - Если есть 2 попадания - выводим на печать строку