diff --git a/src/main/java/ru/ilug/c5_char_frequency/CharFrequencyImpl.java b/src/main/java/ru/ilug/c5_char_frequency/CharFrequencyImpl.java new file mode 100644 index 0000000..2f327cd --- /dev/null +++ b/src/main/java/ru/ilug/c5_char_frequency/CharFrequencyImpl.java @@ -0,0 +1,19 @@ +package ru.ilug.c5_char_frequency; + +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + +public class CharFrequencyImpl implements CharFrequency { + + @Override + public Map getCharFrequency(String text) { + return text.chars() + .mapToObj(c -> (char) c) + .collect( + Collectors.groupingBy(c -> c, + Collectors.collectingAndThen(Collectors.toList(), List::size) + ) + ); + } +} diff --git a/src/main/java/ru/ilug/c5_char_frequency/MainTest.java b/src/main/java/ru/ilug/c5_char_frequency/MainTest.java index a2257f4..a5c63f8 100644 --- a/src/main/java/ru/ilug/c5_char_frequency/MainTest.java +++ b/src/main/java/ru/ilug/c5_char_frequency/MainTest.java @@ -6,13 +6,13 @@ import lombok.extern.slf4j.Slf4j; public class MainTest { public static void main(String[] args) { - CharFrequency charFrequency = null; + CharFrequency charFrequency = new CharFrequencyImpl(); String text1 = "Мама мыла Милку мылом"; String text2 = "Карл у Клары украл рекламу, а Клара у Карла украла бюджет."; - log.info("First char frequency: {}", charFrequency.getSortedCharFrequency(text1)); - log.info("Second char frequency: {}", charFrequency.getSortedCharFrequency(text2)); + log.info("First char frequency: {}", charFrequency.getCharFrequency(text1)); + log.info("Second char frequency: {}", charFrequency.getCharFrequency(text2)); } } diff --git a/src/main/java/ru/ilug/c6_word_group/MainTest.java b/src/main/java/ru/ilug/c6_word_group/MainTest.java index 58a5e26..371e9a7 100644 --- a/src/main/java/ru/ilug/c6_word_group/MainTest.java +++ b/src/main/java/ru/ilug/c6_word_group/MainTest.java @@ -6,7 +6,7 @@ import lombok.extern.slf4j.Slf4j; public class MainTest { public static void main(String[] args) { - WordGroup wordGroup = null; + WordGroup wordGroup = new WordGroupImpl(); String text1 = "Карл у Клары украл рекламу, а Клара у Карла украла бюджет."; String text2 = "Из кузова в кузов шла перегрузка арбузов. В грозу, в грязи от груза арбузов развалился кузов."; diff --git a/src/main/java/ru/ilug/c6_word_group/WordGroupImpl.java b/src/main/java/ru/ilug/c6_word_group/WordGroupImpl.java new file mode 100644 index 0000000..b522ffb --- /dev/null +++ b/src/main/java/ru/ilug/c6_word_group/WordGroupImpl.java @@ -0,0 +1,17 @@ +package ru.ilug.c6_word_group; + +import java.util.Arrays; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + +public class WordGroupImpl implements WordGroup { + + @Override + public Map> groupWordsByLength(String text) { + text = text.replaceAll("[.,]", ""); + return Arrays.stream(text.split(" ")) + .map(String::toLowerCase) + .collect(Collectors.groupingBy(String::length)); + } +}