Знаю, дело в тэге, но я никак не могу понять. если исправлять 40 строчку на:
"startIndex = text.indexOf("<" + tag + ".*?>", startIndex);"
весь код ломается и вылетает исключение.
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;
import java.util.Stack;
public class Solution {
public static void main(String[] args) throws IOException {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
String fileName = reader.readLine();
reader.close();
BufferedReader reader1 = new BufferedReader(new FileReader(fileName));
StringBuilder sb = new StringBuilder();
while (reader1.ready()){
sb.append(reader1.readLine());
}
reader1.close();
String text = sb.toString().replaceAll("\n", "");
String tag = args[0];
int lenTag = tag.length();
String[] str = text.split("<");
int count = 0;
for (String s: str){
if (s.contains(tag))
count++;
}
int countOfTags = count/2;
ArrayList<String> strings = new ArrayList<>();
int startIndex = 0;
int endIndex = text.length()-1;
for (int i = 0; i < countOfTags; i++) {
startIndex = text.indexOf("<" + tag, startIndex);
endIndex = text.lastIndexOf("</"+ tag + ">", endIndex)+lenTag+3;
String line = text.substring(startIndex, endIndex);
strings.add(line);
startIndex++;
endIndex--;
}
for (int i = strings.size()-2; i >= 1; i--){
String line = strings.get(i).substring(0, strings.get(i).indexOf("</" + tag)+lenTag+3);
strings.remove(i);
strings.add(i, line);
}
for (String lines: strings){
System.out.println(lines);
}
}
}