Advertisement
Guest User

Untitled

a guest
Oct 22nd, 2017
74
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.09 KB | None | 0 0
  1. import org.jetbrains.annotations.NotNull;
  2.  
  3. import java.io.FileNotFoundException;
  4. import java.util.*;
  5.  
  6. /**
  7. * Created by Иван on 21.10.2017.
  8. */
  9. public class HtmlProgram {
  10. private StringBuilder text;
  11. private String program;
  12. private Map<String, Integer> map;
  13.  
  14. private final static char OPEN_TEG = '<';
  15. private final static char CLOSE_TEG = '>';
  16.  
  17. @NotNull
  18. private String getNameFromTeg(String teg) {
  19. int indexStart = 1;
  20. if (teg.charAt(1) == '/') {
  21. indexStart++;
  22. }
  23. return teg.substring(indexStart, teg.length() - 1);
  24. }
  25.  
  26. private void addStringIntoMap(int startIndex, int endIndex) {
  27. String tegName = getNameFromTeg(program.substring(startIndex, endIndex));
  28. if (!map.containsKey(tegName)) {
  29. map.put(tegName, 0);
  30. }
  31. map.put(tegName, map.get(tegName) + 1);
  32. }
  33.  
  34. private void addStringIntoText(int startIndex, int endIndex) {
  35. if (endIndex == -1) {
  36. endIndex = program.length();
  37. }
  38. try {
  39. text.append(program.substring(startIndex, endIndex));
  40. } catch (StringIndexOutOfBoundsException ignored) {}
  41. }
  42.  
  43. private void defineText() {
  44. int lastEntry = 0;
  45. int startIndex = program.indexOf(OPEN_TEG, lastEntry);
  46. addStringIntoText(0, startIndex);
  47. while(startIndex != -1) {
  48. int endIndex = program.indexOf(CLOSE_TEG, startIndex);
  49. addStringIntoMap(startIndex, endIndex);
  50. startIndex = program.indexOf(OPEN_TEG, endIndex);
  51. addStringIntoText(endIndex + 1, startIndex);
  52. }
  53. }
  54.  
  55. public HtmlProgram(String fileName) throws FileNotFoundException {
  56. text = new StringBuilder();
  57. program = Reader.readAsString(fileName);
  58. map = new HashMap<>();
  59. defineText();
  60. }
  61.  
  62. public boolean contains(String s) {
  63. return text.toString().contains(s);
  64. }
  65.  
  66. public String getProgram() {
  67. return program;
  68. }
  69.  
  70. public String getText() {
  71. return text.toString();
  72. }
  73. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement