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

Программисты 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»