Целый день пытаюсь понять какая именно логика выведения текста и что у меня не так?
что не так с выводом?
по какому принципу он должен осуществляться, почему в примере выводиться 2 раза подряд один текст?
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;
import java.util.Arrays;
/*
Знакомство с тегами
*/
public class Solution {
public static void main(String[] args) throws IOException {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
String fileName = reader.readLine();
// String fileName = "D:\\JavaRushTasks\\2.JavaCore\\src\\com\\javarush\\task\\task18\\task1827\\test1.txt";
reader.close();
// String s = "Info about Leela <span xml:lang=\"en\" lang=\"en\"><b><span>Turanga Leela"+"</span> </b></span><span>Super</span> <span>girl</span>";
BufferedReader read = new BufferedReader(new FileReader(fileName));
String s = "";
while (read.ready()) {
s += (char) read.read();
}read.close();
String tagNane = "";
String[] d = s.split("<");
String[] v = d[1].split("[^a-zA-Z]");
tagNane = "<" + v[0]; // определяем имя первого тега
String tagDecond = "</" + v[0] + ">"; // имя закрытого тега
int first = 0;
int second = 0;
int secLenght = tagDecond.length();
while (true) {
first = s.indexOf(tagNane, first + 1);
if (first==-1) break;
second = s.indexOf(tagDecond, second);
if(second == -1) break;
// System.out.println(first + " " + second);
System.out.println(s.substring(first, second += secLenght));
}
}
}