Прошу подсказать, какие еще условия нужно соблюсти, чтобы пройти валидатор
Валидатор: Программа должна выводить в консоль все теги, которые соответствуют тегу, заданному в параметре метода main.
package com.javarush.task.task19.task1918;
import javax.swing.text.Document;
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 void cutter(String str, String tag, List<String> list, int start, int end){
String buffer = "";
int firstIndex = start;
int endIndex = 0;
int counter = 0;
for (int i=start; i + tag.length() < end; i++) {
if (str.substring(i, i + tag.length()).equals(tag) && str.charAt(i - 1) == '<') {
counter++;
if (counter < 2) firstIndex = i - 1;
} else if (str.substring(i, i + tag.length()).equals(tag) && str.charAt(i - 1) == '/') {
counter--;
}
if (counter == 0 && str.substring(i, i + tag.length()).equals(tag)) {
endIndex = i + tag.length() + 1;
buffer = str.substring(firstIndex, endIndex);
list.add(buffer);
int number = 0;
for (int j = 1; j + tag.length() < buffer.length(); j++) {
if ((buffer.substring(j-1, j + tag.length()).equals("<"+tag))
|| (buffer.substring(j-1, j + tag.length()).equals("/"+tag))) {
number++;
}
}
if (number > 2) {
cutter(buffer, tag, list, buffer.indexOf('>')+1, buffer.length() - 3 - tag.length());
}
}
}
}
public static void main(String[] args) throws IOException {
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(System.in));
String fileName = bufferedReader.readLine();
FileReader fileReader = new FileReader(fileName);
BufferedReader bufferedReader1 = new BufferedReader(fileReader);
StringBuilder stringBuilder = new StringBuilder();
while (bufferedReader1.ready()) {
stringBuilder.append(bufferedReader1.readLine());
}
fileReader.close();
bufferedReader.close();
String str = stringBuilder.toString();
String tag = args[0];
List<String> list = new ArrayList<>();
cutter(str, tag, list, 0, str.length());
for (String s : list) {
System.out.println(s);
}
}
}