1. Где ошибаюсь ?
2. Если в цикле while , поставить 3 раза if вместо имеющейся конструкции, что измениться ?
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{
ArrayList<String> b = new ArrayList<>();
BufferedReader bu = new BufferedReader(new InputStreamReader(System.in));
String s = bu.readLine();
BufferedReader br = new BufferedReader(new FileReader(s));
bu.close();
Pattern p0 = Pattern.compile((words.get(0)));
Pattern p1 = Pattern.compile(words.get(1));
Pattern p2 = Pattern.compile(words.get(2));
Matcher m0;
Matcher m1;
Matcher m2;
String st1 = null;
int c = 0;
while ((st1 = br.readLine())!=null) {
if ((m0 = p0.matcher(st1)).equals(true)) c++;
else if ((m1 = p1.matcher(st1)).equals(true)) c++;
else if ((m2 = p2.matcher(st1)).equals(true)) c++;
if(c==2) {
b.add(st1);
}
}
br.close();
for(String all : b) {
System.out.println(all);
}
}
}