в файле one.txt то же самое, что в примере задания.
вывод программы идентичен примеру вывода.
Подскажите, пожалуйста, почему последний пункт валидатор не пропускает?
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 {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String file = br.readLine();
br.close();
ArrayList<String> tags = new ArrayList<>();
String str = "";
try (FileReader fr = new FileReader(file)) {
while (fr.ready()) {
str += (char) fr.read();
}
}
str = str.replaceAll("[\\n\\r]", "");
int first = str.indexOf('<');
str = str.substring(first);
int last = str.lastIndexOf('<');
for (int i = 0; i < str.length(); i++) {
if (str.charAt(i) == '<') {
String sub = "";
sub += str.charAt(i);
while (str.charAt(i) != '>') {
sub += str.charAt(++i);
}
tags.add(sub);
} else {
String sub = "";
if (i + 1 < last) {
while (str.charAt(i) != '<') {
sub += str.charAt(i++);
}
tags.add(sub);
i--;
}
}
}
int open = 0;
for (int i = 0; i < tags.size(); i++) {
if (tags.get(i).contains(args[0]) && !tags.get(i).contains("/")) {
open++;
while (open > 0) {
for (int j = i; j < tags.size(); j++) {
System.out.print(tags.get(j));
if (tags.get(j).contains(args[0])) {
if (tags.get(j).contains("/")) {
open--;
} else {
if (i != j) {
open++;
}
}
}
if (open == 0) break;
}
}
System.out.println();
}
}
}
}