Валидатор не принял решение.
Рекомендация от ментора: Проверь вывод тегов из следующего примера: см. 5 пункт.
мой код выдает так:
<тег aria-hidden="true" class="line-numbers-rows">
<тег></тег>
<тег><тег>
<тег></тег>
</тег>
Ну естественно вместо тег - span
Может подсказать кто, а как должно быть?
Вроде же видно что это расширенный вариант от начальной части первого примера.
Т.е. тут схематично так [ [ ] [ ] [ ] ] где [ - открывающий тег, а ] - закрывающий.
И если по аналогии с первым вариантом, то выдаваемый результат верен.
Что не так?
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;
/*
Знакомство с тегами
*/
// C:\Users\Morak\Desktop\input.html
public class Solution {
public static void main(String[] args) {
String tag = args[0];
try (
BufferedReader fileNameRead = new BufferedReader(new InputStreamReader(System.in));
FileReader openFile = new FileReader(fileNameRead.readLine());
BufferedReader fileContent = new BufferedReader(openFile)
) {
String input = "";
while (fileContent.ready()) {
input += fileContent.readLine();
}
input = input.replaceAll("\n", "").replaceAll("\r", "");
printTags(input, tag);
} catch (IOException e) {
e.printStackTrace();
}
}
//Метод вывода в консоль по тегам
// <span aria-hidden="true" class="line-numbers-rows"><span></span><span></span><span></span></span>
public static void printTags (String input, String tag){
String[] split = input.split("<"+tag);
for(int i = 1; i < split.length; i++) {
if(split[i].indexOf("</"+tag)==split[i].lastIndexOf("</"+tag))
System.out.println("<"+tag+split[i]);
else {
System.out.println("<"+tag+split[i].substring(0,split[i].lastIndexOf("</"+tag)));
System.out.println(split[i].substring(split[i].lastIndexOf("</"+tag)));
}
}
}
}