Вроде все выводит верно, но все равно ругается
package com.javarush.task.task19.task1918;
/*
Знакомство с тегами
*/
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.*;
public class Solution {
public static void main(String[] args) throws IOException {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
String fileName =reader.readLine();//"D:\\Teg.txt";
reader.close();
BufferedReader readerForFile = new BufferedReader(new FileReader(fileName));
String line="";
String l = "";
while ((line = readerForFile.readLine()) != null){
l += line;
}
readerForFile.close();
int count = 0; // счетчик для вложенных тего
List<Integer> listCount = new ArrayList<>();
for(int i = 0; i < l.length(); i++){
if(l.substring(i,i+1).equals("<")){//если нашли открывающий тег, сравниваем с искомым
if(l.substring(i+1,i+5).equals(args[0])){
count++;
listCount.add(i); // если это он сохраняем его индекс в лист
}
}else
if(l.substring(i,i+1).equals(">")){ // если нашли закрывающий тег, сравниваем с искомым
if(l.substring(i-5,i).equals("/"+args[0])){
count--;
listCount.add(i+1);//добавяем в лист индекс
}
}
if(count == 0){ // если count равен 0 значит все теги закрыты, начинаем читать и выводить
for(int j = 0; j < listCount.size(); j++){
System.out.println(l.substring(listCount.get(0), listCount.get(listCount.size()-1))); // берем игдекс первого тега,
listCount.remove(listCount.get(0)); // и его же индекс, по логике он опаясывает все теги внутри
listCount.remove(listCount.get(listCount.size()-1)); //после удаляем выведенные теги
j=0;
}
}
}
}
}