public class Solution {
public static void main(String[] args) throws IOException {
String nameTag;
String fileName;
String lineHtml;
if (args.length != 0) {
nameTag = args[0];
} else return;
try (BufferedReader reader = new BufferedReader(new InputStreamReader(System.in))) {
fileName = reader.readLine();
}
try (FileReader fileReader = new FileReader(fileName)) {
StringBuilder temp = new StringBuilder();
while (fileReader.ready()) {
char symbol = (char) fileReader.read();
if (symbol != '\r' && symbol != '\n') temp.append(symbol);
}
lineHtml = temp.toString();
}
ArrayList<String> tagList = getAllTag(lineHtml, nameTag);
for (String i : tagList) {
System.out.println(i);
}
}
private static ArrayList<String> getAllTag(String lineHtml, String nameTag) {
String startTag = "<" + nameTag;
String endTag = "</" + nameTag;
ArrayList<String> tagList = new ArrayList<>();
ArrayList<Integer> closeTagList = new ArrayList<>();
String lastTag;
int lastOpenTag = lineHtml.lastIndexOf(startTag);
while (lastOpenTag > 0) {
int nextCloseTag = lineHtml.indexOf(endTag, lastOpenTag);
while (closeTagList.contains(nextCloseTag)) {
nextCloseTag = lineHtml.indexOf(endTag, nextCloseTag + 1);
}
closeTagList.add(nextCloseTag);
lastTag = lineHtml.substring(lastOpenTag, nextCloseTag + endTag.length());
tagList.add(0, lastTag);
lastOpenTag = lineHtml.lastIndexOf(startTag, lastOpenTag - 1);
}
return tagList;
}
}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 {
private static String fileName;
private static ArrayList<String> tagList = new ArrayList<>();
private static String lineHtml;
private static String nameTag;
private static ArrayList<Integer> closeTagList = new ArrayList<>();
public static void main(String[] args) throws IOException {
if (args.length != 0) {
nameTag = args[0];
} else return;
try (BufferedReader reader = new BufferedReader(new InputStreamReader(System.in))) {
fileName = reader.readLine();
}
try (FileReader fileReader = new FileReader(fileName)) {
StringBuilder temp = new StringBuilder();
while (fileReader.ready()) {
char symbol = (char) fileReader.read();
if (symbol != '\r' && symbol != '\n') temp.append(symbol);
}
lineHtml = temp.toString();
}
String startTag = "<" + nameTag;
String endTag = "</" + nameTag;
getAllTag(startTag, endTag);
for (String i : tagList) {
System.out.println(i);
}
}
private static void getAllTag(String startTag, String endTag) {
String lastTag = "";
int lastOpenTag = lineHtml.lastIndexOf(startTag);
while (lastOpenTag > 0) {
int nextCloseTag = lineHtml.indexOf(endTag, lastOpenTag);
if (!closeTagList.contains(nextCloseTag)) {
closeTagList.add(nextCloseTag);
lastTag = lineHtml.substring(lastOpenTag, nextCloseTag + endTag.length());
tagList.add(0, lastTag);
} else {
while (closeTagList.contains(nextCloseTag)) {
nextCloseTag = lineHtml.indexOf(endTag, nextCloseTag + 1);
}
closeTagList.add(nextCloseTag);
lastTag = lineHtml.substring(lastOpenTag, nextCloseTag + endTag.length());
tagList.add(0, lastTag);
}
lastOpenTag = lineHtml.lastIndexOf(startTag, lastOpenTag - 1);
}
}
}