Вывод верный. Логика правильная ЧТО НЕ ТАК????
На фото я подчеркнул ключи.
![]()

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.ArrayList;
/*
Знакомство с тегами
*/
public class Solution {
public static void main(String[] args) throws Exception {
String name;
try (BufferedReader fileName = new BufferedReader(new InputStreamReader(System.in)))
{
name = fileName.readLine();
}
try (FileReader fileReader = new FileReader(name))
{
ArrayList<String> arrayList = new ArrayList<>();
while (fileReader.ready()) {
arrayList.add(String.valueOf(fileReader.read()));
}
}
// <span xml:lang="en" lang="en"><b><span>Turanga Leela</span></b></span><span>Super</span><span>girl</span>
// <span aria-hidden="true" class="line-numbers-rows"><span></span><span></span><span></span></span>.
String teg1 = "<" + args[0];
String teg2 = "</" + args[0] + ">";
int lastIndexTegBegin = name.lastIndexOf(teg1);
int lastIndexTegEnd = name.lastIndexOf(teg2);
int indexTeg1 = name.indexOf(teg1);
int indexTeg2;
int indexTeg3;
do {
indexTeg2 = name.indexOf(teg2, indexTeg1 + teg1.length());
indexTeg3 = name.indexOf(teg1, indexTeg1 + teg1.length());
while (indexTeg3 < indexTeg2 && indexTeg3 != -1) {
indexTeg2 = name.indexOf(teg2, indexTeg2 + teg1.length());
indexTeg3 = name.indexOf(teg1, indexTeg3 + teg1.length());
}
System.out.println(name.substring(indexTeg1, indexTeg2 + teg2.length()));
indexTeg1 = name.indexOf(teg1, indexTeg1 + teg1.length());
}
while (indexTeg1 <= lastIndexTegBegin && indexTeg1 != -1);
}
}