Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package net.ukr.shyevhen;
- import java.io.BufferedReader;
- import java.io.File;
- import java.io.FileReader;
- import java.io.IOException;
- import java.util.ArrayList;
- import java.util.List;
- public class Book {
- private List<Character> book = new ArrayList<>();
- private File file;
- private List<Letter> alphabet = new ArrayList<>();
- public Book(String file) {
- super();
- this.file = new File(file);
- for (char i = 'A'; i <= 'Z'; i++) {
- alphabet.add(new Letter(i));
- }
- }
- public Book() {
- super();
- for (char i = 'A'; i <= 'Z'; i++) {
- alphabet.add(new Letter(i));
- }
- }
- public List<Letter> getAlphabet() {
- return alphabet;
- }
- public void setFile(File file) {
- this.file = file;
- }
- public void getLetterCount() {
- readFile();
- for (Letter letter : alphabet) {
- letter.setCount(book.lastIndexOf(letter.getLetter()) - book.indexOf(letter.getLetter()) + 1);
- }
- alphabet.sort((a, b) -> b.getCount() - a.getCount());
- System.out.println(this.toString());
- }
- private void readFile() {
- StringBuilder sb = new StringBuilder();
- try (BufferedReader br = new BufferedReader(new FileReader(file))) {
- String t = "";
- for (; (t = br.readLine()) != null;) {
- sb.append(t);
- }
- } catch (IOException e) {
- e.printStackTrace();
- }
- String text = sb.toString().replaceAll("\\W|\\d", "").toUpperCase();
- for (int i = 0; i < text.length(); i++) {
- book.add(text.charAt(i));
- }
- book.sort((a, b) -> a - b);
- }
- @Override
- public String toString() {
- StringBuilder sb = new StringBuilder();
- for (Letter letter : alphabet) {
- sb.append(letter).append(System.lineSeparator());
- }
- return sb.toString();
- }
- }
Add Comment
Please, Sign In to add comment