Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import org.jetbrains.annotations.NotNull;
- import java.io.FileNotFoundException;
- import java.util.*;
- /**
- * Created by Иван on 21.10.2017.
- */
- public class HtmlProgram {
- private StringBuilder text;
- private String program;
- private Map<String, Integer> map;
- private final static char OPEN_TEG = '<';
- private final static char CLOSE_TEG = '>';
- @NotNull
- private String getNameFromTeg(String teg) {
- int indexStart = 1;
- if (teg.charAt(1) == '/') {
- indexStart++;
- }
- return teg.substring(indexStart, teg.length() - 1);
- }
- private void addStringIntoMap(int startIndex, int endIndex) {
- String tegName = getNameFromTeg(program.substring(startIndex, endIndex));
- if (!map.containsKey(tegName)) {
- map.put(tegName, 0);
- }
- map.put(tegName, map.get(tegName) + 1);
- }
- private void addStringIntoText(int startIndex, int endIndex) {
- if (endIndex == -1) {
- endIndex = program.length();
- }
- try {
- text.append(program.substring(startIndex, endIndex));
- } catch (StringIndexOutOfBoundsException ignored) {}
- }
- private void defineText() {
- int lastEntry = 0;
- int startIndex = program.indexOf(OPEN_TEG, lastEntry);
- addStringIntoText(0, startIndex);
- while(startIndex != -1) {
- int endIndex = program.indexOf(CLOSE_TEG, startIndex);
- addStringIntoMap(startIndex, endIndex);
- startIndex = program.indexOf(OPEN_TEG, endIndex);
- addStringIntoText(endIndex + 1, startIndex);
- }
- }
- public HtmlProgram(String fileName) throws FileNotFoundException {
- text = new StringBuilder();
- program = Reader.readAsString(fileName);
- map = new HashMap<>();
- defineText();
- }
- public boolean contains(String s) {
- return text.toString().contains(s);
- }
- public String getProgram() {
- return program;
- }
- public String getText() {
- return text.toString();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement