тестирую на блокноте вроде все норм. Логика программы следующая - разбиваю сплитом строку-загоняю в массив и сравниваю equals каждый элемент списка с каждым элементом массива. вывожу строку если совпадение было 2 раза в независимости от элемена. что не так?
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;
/*
Ищем нужные строки
*/
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 {
BufferedReader bf=new BufferedReader(new InputStreamReader(System.in));
String namefile=bf.readLine();
//String namefile="C:/Users/Василий/Documents/тестовые_документы/2.txt";
bf.close();//закрываем поток считывания данных с консоли
BufferedReader reader=new BufferedReader(new FileReader(namefile));
int countwords=0;//счетчик совпадения слов
while (reader.ready()){
String s=reader.readLine();
String []strings=s.split(" ");//делим прочтенную строку и всставляем в массив
for (int i = 0; i <3 ; i++) {
for (int j = 0; j < strings.length; j++) {//каждое слово из массива строк сравниваем по содержанию со списком
if (strings[j].equals(words.get(i))) {//если находим совпадение, то увеличиваем счетчик
countwords++;
}
}
}
if (countwords==2){
System.out.println(s);
}
countwords=0;
}
reader.close();//закрываем поток FileReader
}
}