Доброго времени суток, JR!
Хочу расширить свой кругозор по решению задач, в регулярках пока особо не разбираюсь (видел в обсуждениях как кто то юзает их), пользуюсь изученным материалами.
Ниже код, он вроде и работает, но если в строке две буквы А, то он засчитывает только одно совпадение, соответственно условие уже не выполняется. До этого перепробовал парсить в char, в byte, и сравнивать их, но костыли эти к успеху не привели и я вернулся к исходной точке. Пробовал также Collections.frequency, но грамотного применения в своём коде не нашёл, хотя штука очень крутая. Основная задача сейчас - сделать так, чтобы был ещё один цикл, который будет брать words и equals() его с каждым символом строки, а не contains со всей строкой.
Прошу помочь советом🤞
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 reader = new BufferedReader(new InputStreamReader(System.in));
BufferedReader file = new BufferedReader(new FileReader(reader.readLine()));
ArrayList<String> fileList = new ArrayList<>();
ArrayList<String> chooseWords = new ArrayList<>();
String line;
while ((line = file.readLine()) != null) {
fileList.add(line);
}
for (String value : fileList) {
for (String word : words) {
if (value.contains(word)) {
chooseWords.add(value);
}
}
if (chooseWords.size() == 2) {
System.out.println(value);
chooseWords.clear();
} else {
chooseWords.clear();
}
}
reader.close();
file.close();
}
}