Получите частоты слов из массива строковых предложений с помощью Java 8JAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Получите частоты слов из массива строковых предложений с помощью Java 8

Сообщение Anonymous »

Итак, у меня есть следующий массив в качестве входных данных

Код: Выделить всё

String[] input = new String[] {
"This is a sample string",
" string ",                   // additional spaces here cause issues while splitting
"Another sample string",
"This is not    a sample string"
};
Нужно посчитать частоты отдельных слов. Требуемый вывод:

Код: Выделить всё

{a=2, not=1, string=4, This=2, is=2, sample=3, Another=1}
На данный момент у меня есть рабочий код:

Код: Выделить всё

// 1. Convert String[] into a single " " delimited String
String joined = String.join(" ", input);

// 2. Split on " " and then calculate count using Collectors.groupingBy
Map  output = Arrays.stream(joined.split(" "))
.filter(s -> !s.equals(""))    // To Deal with Empty Strings
.collect(Collectors.groupingBy(Function.identity(),Collectors.counting()));

System.out.println(output);

Мне это кажется очень грубым, предложите лучший способ сделать это с помощью Streams API.
Спасибо.

Подробнее здесь: https://stackoverflow.com/questions/791 ... ing-java-8
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «JAVA»