• ,

com.javarush.task.task19.task1918 - Все сделано простыми базовыми функциями

НЕ проходит валидацию :( что его беспокоит?

Все сделано простыми базовыми функциями (без Map, Stack и даже массивов), решение за один проход, вложенность тегов «ЗА» общим тегом решена рекурсией.

На мой взгляд все очень компактно и складно.

public static void getOuter(String html, String tag) {

int startPosition = 0;
int openTags = 0;
int firstOpenTag = 0;
int secondOpenTag = 0;
int secondCloseTag = 0;

while (html.indexOf(tag, startPosition) > 0) {
int pos = html.indexOf(tag, startPosition);
if ("<".equals(html.substring(pos — 1, pos))) {
++openTags;
if (openTags == 1)
firstOpenTag = pos;
else if (openTags == 2)
secondOpenTag = pos;
}
if ("/".equals(html.substring(pos — 1, pos))) {
if (openTags == 2)
secondCloseTag = pos;
--openTags;
}
startPosition = pos + 1;

if (openTags == 0) {
System.out.println(html.substring(firstOpenTag — 1, startPosition + tag.length()));
if ((secondCloseTag — secondOpenTag) != 0) {
getOuter(html.substring(secondOpenTag — 1, secondCloseTag + tag.length() + 1), tag);
secondOpenTag = secondCloseTag = 0;
}
}
}
}