Понимаю, что будет звучать глупо, но вроде бы все возможности проверил, всё работает, однако компилятор не принимает
Считай с консоли имя файла, который имеет HTML-формат.
Пример: Info about Leela <span xml:lang="en" lang="en"><b><span>Turanga Leela </span></b></span><span>Super</span><span>girl</span>
Первым параметром в метод main приходит тег. Например, "span".
Вывести на консоль все теги, которые соответствуют заданному тегу.
Каждый тег на новой строке, порядок должен соответствовать порядку следования в файле.
Количество пробелов, \n, \r не влияют на результат.
Файл не содержит тег CDATA, для всех открывающих тегов имеется отдельный закрывающий тег, одиночных тегов нет.
Тег может содержать вложенные теги.
Пример вывода: <span xml:lang="en" lang="en"><b><span>Turanga Leela</span></b></span>
<span>Turanga Leela</span>
<span>Super</span>
<span>girl</span>
Я могу выразить свое мнение, когда я делал эту задачу с помощью split() или Stringbuilder, у меня валидатор не принимал решение, хотя результат был верным, попробуйте ничего не химичить с исходной строкой, уберите лишние пробелы и символы возврата каретки, как вы уже сделали, просто найдите необходимые индексы и скопируйте их из исходной строки, я так понимаю что если модифицировать исходную строку, то java добавляет туда служебные символы, а валидатор проверяет байты и поэтому строки не совпадают.
Строку в Java модифицировать никак не получится, это иммутабельный тип. Количество же переносов строк и пробелов на валидацию не влияют, это по поводу фильтрации ввода для удобства обработки. Вывод тоже логично делать по отфильтрованной строке.
В чем ошибка конкретно в коде автора сказать не берусь, очень уж он намудрил, вчитываться лень, но скорее всего где-то напутал с индексами и сортировками.
Сама же задача довольно просто решается при помощи стека, я читал строку посимвольно, таким образом находя координаты начала и конца. Координаты начала кидались в стек, для каждой координаты конца выщёлкивалось начало из стека, пары для удобства можно хранить в TreeMap с ключом по началу, чтобы координаты правильно отсортировались. Потом просто для каждой пары вывести соответствующую подстроку из отфильтрованного ввода.
tagSize в случае закрывающего тэга - это длина имени тэга + длина "</" + длина ">", чтобы выбрать сабстрингом все вместе со скобками.
Непонятно зачем нужна сортировка координат?
Алгорит то не сложный: берем из массива открывающих тэгов координату первого тэга, удаляем, из массива закрывающих тэгов последнюю координату, удаляем, делаем сабстринг с учетом длины закрывающего тэга со всеми скобкамм. Повторяем пока массивы с координатами не опустеют. Сортировка тут все портит. Тэги и так уже в порядке появления в строке стоят.