Задача 1. Подсчёт слов.
Задача: написать программу, которая подсчитывает количество строк, слов, символов в файлах или потоке ввода. Также опционально выводит топ 10 самых встречающихся слов
Пример работы программы
# Пример файла:
$> cat file1.txt
hello world
foo bar
one two three
# работа с 1 файлом:
$> java -jar wc.jar file1.txt
3 line(s)
7 word(s)
34 character(s)
# работа с потоком ввода:
$> echo -e "one two\nthree" | java -jar wc.jar
2 line(s)
3 word(s)
14 character(s)
# работа с несколькими файлами:
$> java -jar wc.jar file1.txt file2.txt file3.txt
file1.txt: 3 line(s), 7 word(s), 34 character(s)
file2.txt: 2 line(s), 3 word(s), 14 character(s)
file3.txt: 10 line(s), 30 word(s), 197 character(s)
# Поддерживаемые опции:
# -l -- вывод количества строк
# -w -- вывод количества слов
# -c -- вывод количества символов
$> java -jar wc.jar -l file1.txt
3
# Опции можно комбинировать, опции могут располагаться в любом месте.
$> java -jar wc.jar -w -c file1.txt file2.txt
7 34
3 14
Юнит-тесты
Для проверки работы программы необходимо написать юнит-тесты.
Можно воспользоваться любой подходящей java-библиотекой, например junit
.
Примечание
Во время тестирования полезно сравнивать вывод своей программы с выводом юниксовой утилиты wc
:
$> wc file1.txt
3 7 34 file1.txt
Дополнительное задание
- Добавить в программу опцию
-T
, при указании которой будет выводиться топ 10 самых часто встречаемых слов (с указанием количества раз). - Добавить опцию
-n <количество>
чтобы указать, какое количество слов в топе выводить.