Works perfectly in my local machine. But fails validation here. Not sure why.
package com.codegym.task.task19.task1918;
/*
Introducing tags
*/
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) throws IOException {
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(System.in));
String htmlFile = bufferedReader.readLine();
bufferedReader.close();
String tagName = args[0];
bufferedReader = new BufferedReader(new FileReader(htmlFile));
StringBuilder stringBuilder = new StringBuilder();
while (bufferedReader.ready()){
stringBuilder.append((char)bufferedReader.read());
}
bufferedReader.close();
String content = stringBuilder.toString().replaceAll("<" + tagName, "#").replaceAll("</" + tagName + ">", "*" );
char[] chars = content.toCharArray();
StringBuilder sb = new StringBuilder();
int hashCount = 0;
int starCount = 0;
for (int i = 0; i < chars.length; i++){
char c = chars[i];
if (c == '#'){
hashCount++;
}
if (hashCount > 0){
// if (chars[i] == '\n'){
// don't add new lines in a html string. Skipping it.
// } else {
sb.append(c);
// }
}
if (c == '*'){
hashCount--;
if (hashCount == 0){
sb.append('\n');
}
}
}
String finalS = sb.toString().replaceAll("#", "<" + tagName).replaceAll("\\*", "</" + tagName + ">");
System.out.println(finalS);
}
}