было изначально так (обратить внимание на параметры split() в строчке номер 32):
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 br = new BufferedReader(new InputStreamReader(System.in));
String fileName = br.readLine();
br.close();
try (BufferedReader brf = new BufferedReader(new FileReader(fileName))) {
while (brf.ready()) {
int countMatches = 0;
String fileLine = brf.readLine();
for (String word : words) {
countMatches += fileLine.split("\\b" + word + "\\b").length - 1;
if (countMatches > 2) break;
}
if (countMatches == 2) {
System.out.println(fileLine);
}
}
}
}
}
но при это валидатор поругался и не пропустил со словами "учти, что в words может быть любое количество слов"