Requirements

На вход приходит текстовый файл (он может лежать в проекте или где-то еще на файловой системе), например книга "The Fellowship of the Ring".

Задача:

Прочитать файл и посчитать количество упоминания слов.

Input: C:/Temp/myfile.txt

Output: Unique words: 949491

Top 100 most popular words:

[{"And": 1000},

{"Why": 555},

...

{"Ring": 1}]

Что важно:

  1. Пока еще можно использовать метод Main. Но в других классах слова static быть не должно. Это плохое, злое слово.

  2. Логику нужно разбить на отдельные классы -- пусть один загружает файл с диска в память, другой считает слова, третий форматирует и выводит ответ, и т.д. У каждого класса должно быть одно и только одно Высшее Предназначение.

  3. Нужно использовать Maven для сборки проекта. Idea > new Project > Maven

  4. Maven позволяет подключать внешние библиотеки, которые упрощают жизнь. По умолчанию Maven создает папку src/test и подключает библиотеку JUnit. Поэтому код нужно проверить. Это нужно для отладки и чтобы потом спать крепче. Нужно написать JUnit test, который берет файл из папки test/resources/myfile.txt, считает в нем количество слов и сравнивает с ожидаемым.

  5. Файлы .idea и .iml не надо добавлять в проект (файл .gitignore)