在Java 8中使用数组流计算单词出现次数

Juh*_*o M 2 java arrays java-8 java-stream

如何使用数组流计算字符串中的字频?我正在使用Java 8.

这是我的代码:

String sentence = "The cat has black fur and black eyes";
String[] bites = sentence.trim().split("\\s+");

String in = "black cat";
Run Code Online (Sandbox Code Playgroud)

计算句子中的单词"black"和"cat"频率.单词"黑色"频率为2,单词"cat"为1.

那么目标输出就是3.

Thi*_*ilo 7

怎么样

Map<String, Long> counts = yourStringStream
    .collect(Collectors.groupingBy(Function.identity(), Collectors.counting()));
Run Code Online (Sandbox Code Playgroud)

这将为您提供从所有单词到其频率计数的映射.


Yaz*_*ber 6

Map<String, Long> count = Arrays.stream(bites)
        .collect(Collectors.groupingBy(Function.identity(), Collectors.counting()));
Run Code Online (Sandbox Code Playgroud)