вложенные тэги выдает, последовательность вывода тоже верная. Пробелов и переносов нет, но и с ними не прокатывало. О чем еще думать?
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 b = new BufferedReader(new InputStreamReader(System.in));
String f = b.readLine();
BufferedReader fileReader =new BufferedReader(new FileReader(f));
StringBuilder s = new StringBuilder();
ArrayList<Teg> tegi = new ArrayList<>();
while (fileReader.ready()){
char ch = (char) fileReader.read();
s.append(ch); }
b.close();
fileReader.close();
String ss = s.toString();
ss = ss.replaceAll("\n", "");
ss = ss.replaceAll("\r", "");
int i = 0;
while ((ss.indexOf(args[0], i+1))!=-1){
i=ss.indexOf(args[0], i+1);
String simv=ss.substring(i-1, i);
if (simv.equals("/")){
Teg teg = new Teg(i,false);
tegi.add(teg);
}
else{
Teg teg = new Teg(i,true);
tegi.add(teg);}
}
int k = 0;
int j = 0;
while (tegi.size()>0){
if (tegi.get(j).nachalo){k++;}
else {k--;}
if (k==0){
String sss = ss.substring(tegi.get(0).index-1, tegi.get(j).index+1+args[0].length());
System.out.println(sss);
tegi.remove(j);
tegi.remove(0);
j=0;
continue;
}
j++;
}}}
class Teg{
int index;
boolean nachalo;
public Teg(int index, boolean nachalo) {
this.index = index;
this.nachalo = nachalo;
}
}