Подскажите что неверно, все дефолтные тесты проходит
Читаем имя файла
Составляем строку из данных в файле
Считаем количество целых тегов в строке
Составляем лист, где в каждую строку, кроме первой, вписываем строку из данных файла с удаленным открытым тегом
Обрабатываем каждую строку листа для получения целого тега, последовательно, кладем результат в список
Выводим на экран новый список со всеми полученными тегами и их содержимым
package com.javarush.task.task19.task1918;
import java.util.*;
import java.io.*;
public class Solution {
static String test;
public static int count, index = 0;
public static String copyname = test;
public static void main(String[] args) throws Exception {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
test = reader.readLine();
reader.close();
FileReader filereader = new FileReader(test);
int b;
int n=0;
String fr="";
while(filereader.ready()){
if ((b=filereader.read())==13||b==10) {
n++;
if (n==2) {
fr+=" ";
n=0;
}
}
else fr+=(char)b;
}
filereader.close();
test=fr;
copyname = test;
String tag = args[0];
String open = "<"+tag;
String close = "</"+tag+">";
ArrayList<String> list = new ArrayList<>();
ArrayList<String> result = new ArrayList<>();
list.add(test);
int r = countTags(test,open);
for(int i=1; i<r; i++){
list.add(delete(copyname,open));
}
for (int i=0; i<r;i++){
test=list.get(i);
copyname = test;
index = copyname.indexOf(open);
copyname=delete(copyname,open);
count =open.length();
if (!copyname.contains(open)){copyname+=open;}
while(copyname.indexOf(open)<copyname.indexOf(close)){
copyname+=open;
deleteinsiders(copyname,tag);
}
String substr = copyname.substring(index);
int end = substr.indexOf(close)+count+close.length()+index ;
String tmp = test.substring(index,end);
result.add(tmp);
count=0; index=0;
}
for (String f : result){
System.out.println(f);
}
}
public static String delete(String k, String m){
String start=k.substring(0,k.indexOf(m));
String cont=k.substring(k.indexOf(m)+m.length());
copyname = start+cont;
return copyname;
}
public static void deleteinsiders(String str, String tag){
String h = str;
String open = "<"+tag;
String close = "</"+tag+">";
count +=open.length()+close.length();
String start = h.substring(0,h.indexOf(open));
String end=h.substring(h.indexOf(open)+open.length());
String tmp = start+end;
start = tmp.substring(0,tmp.indexOf(close));
end=tmp.substring(tmp.indexOf(close)+close.length());
copyname=start+end;
}
public static int countTags(String str, String tag){
String copy = str;
int k = 0;
while(copy.indexOf(tag)!=-1){
String start=copy.substring(0,copy.indexOf(tag));
String cont=copy.substring(copy.indexOf(tag)+tag.length());
copy = start+cont;
k++;
}
return k;
}
}