Guest User

Untitled

a guest
May 20th, 2018
143
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.61 KB | None | 0 0
  1. package net.ukr.shyevhen;
  2.  
  3. import java.io.BufferedReader;
  4. import java.io.File;
  5. import java.io.FileReader;
  6. import java.io.IOException;
  7. import java.util.ArrayList;
  8. import java.util.List;
  9.  
  10. public class Book {
  11. private List<Character> book = new ArrayList<>();
  12. private File file;
  13. private List<Letter> alphabet = new ArrayList<>();
  14.  
  15. public Book(String file) {
  16. super();
  17. this.file = new File(file);
  18. for (char i = 'A'; i <= 'Z'; i++) {
  19. alphabet.add(new Letter(i));
  20. }
  21. }
  22.  
  23. public Book() {
  24. super();
  25. for (char i = 'A'; i <= 'Z'; i++) {
  26. alphabet.add(new Letter(i));
  27. }
  28. }
  29.  
  30. public List<Letter> getAlphabet() {
  31. return alphabet;
  32. }
  33.  
  34. public void setFile(File file) {
  35. this.file = file;
  36. }
  37.  
  38. public void getLetterCount() {
  39. readFile();
  40. for (Letter letter : alphabet) {
  41. letter.setCount(book.lastIndexOf(letter.getLetter()) - book.indexOf(letter.getLetter()) + 1);
  42. }
  43. alphabet.sort((a, b) -> b.getCount() - a.getCount());
  44. System.out.println(this.toString());
  45. }
  46.  
  47. private void readFile() {
  48. StringBuilder sb = new StringBuilder();
  49. try (BufferedReader br = new BufferedReader(new FileReader(file))) {
  50. String t = "";
  51. for (; (t = br.readLine()) != null;) {
  52. sb.append(t);
  53. }
  54. } catch (IOException e) {
  55. e.printStackTrace();
  56. }
  57. String text = sb.toString().replaceAll("\\W|\\d", "").toUpperCase();
  58. for (int i = 0; i < text.length(); i++) {
  59. book.add(text.charAt(i));
  60. }
  61. book.sort((a, b) -> a - b);
  62. }
  63.  
  64. @Override
  65. public String toString() {
  66. StringBuilder sb = new StringBuilder();
  67. for (Letter letter : alphabet) {
  68. sb.append(letter).append(System.lineSeparator());
  69. }
  70. return sb.toString();
  71. }
  72.  
  73. }
Add Comment
Please, Sign In to add comment