Кручу задачу уже 3й день. В консоль выводит все верно. Я же правильно понимаю?
<span><span></span><span></span><span></span></span> должен выводиться как
<span><span></span><span></span><span></span></span>
то есть неизмененным.
Что я не так делаю?
ПС: c "\r" выводит корректней чем c "\n"
ППС: пока задавал вопрос научился экранировать тэги)
package com.javarush.task.task19.task1918;
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.io.InputStreamReader;
/*
Знакомство с тегами
*/
public class Solution {
public static void main(String[] args) {
String openTag = args[0];
String closeTag = "/" + openTag;
try (BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
BufferedReader fileReader = new BufferedReader(new FileReader(reader.readLine()))) {
StringBuffer buffer = new StringBuffer();
while (fileReader.ready()) {
buffer.append(fileReader.readLine());
}
String sourceText = buffer.toString().replaceAll("\n", "").replaceAll("\r", "");
String[] elements = sourceText.split("<");
int firstElement = 0;
int flag = 0;
for (int i = 0; i < elements.length; i++) {
if (elements[i].contains(closeTag)) {
flag--;
if (flag == 0) {
for (int j = firstElement; j <= i; j++) {
System.out.print("<" + elements[j]);
}
System.out.println("\n");
}
} else if (elements[i].contains(openTag)) {
if (flag == 0) firstElement = i;
flag++;
}
}
} catch (IOException e) {
e.getStackTrace();
}
}
}