Выводит строки, содержащие 2 и 3 слова. Почему выводит строку: "вид вид вид"?
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;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
/*
Ищем нужные строки
*/
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 reader = new BufferedReader(new InputStreamReader(System.in));
String s = reader.readLine();
reader.close();
FileReader fileReader = new FileReader(s);
BufferedReader file = new BufferedReader(fileReader);
String str = "";
while (file.ready()) {
str = file.readLine();
int count = 0;
Pattern word = Pattern.compile("(файл|вид|В)");
Matcher matcher = word.matcher(str);
while (matcher.find()) {
count++;
if (count == 2) {
System.out.println(str);
}
}
}
fileReader.close();
file.close();
}
}