Программа должна выводить в консоль все строки из файла, которые содержат всего 2 слова из списка words. -
проверял выводит только с двумя совпадениями , а в чем косяк не пойму , помогите понять) по первым пунктам все ясно, переделаю структуру через filereader
package com.javarush.task.task19.task1922;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
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("kak");
words.add("to");
words.add("tak");
}
public static void main(String[] args) throws Exception {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
File file = new File(reader.readLine());
reader.close();
reader = new BufferedReader(new FileReader(file));
while (reader.ready()){
String line = reader.readLine();
int x = 0;
for(String s: words){
//ищем совпадения слова в строке
Pattern pattern = Pattern.compile(s);
Matcher matcher = pattern.matcher(line);
while (matcher.find()){
x++;
}
}
///System.out.println( line + " - " + x);
if (x==2){
System.out.println(line);
}
}
reader.close();
}
}