Java - 推文计数器

标签 java regex twitter

我制作了一个应用程序,在给定关键字时打印 500 条最新推文,例如“猫”。

我想使用带有正则表达式的 String.split() 拆分推文中的所有单词,然后使用 HashMap 存储每个单词并使用循环增加每个单词的整数值,每次在推文中提到它。

最佳答案

您可以使用 Java 8 Streams:

String[] words = tweetText.split(" ");
Map<String, Integer> wordCount = Arrays.stream(words)
    .collect(Collectors.toMap(word -> word, word -> 1, Integer::sum));

如果你想不区分大小写:

Map<String, Integer> wordCount = Arrays.stream(words)
    .map(String::toLowerCase)
    .collect(Collectors.toMap(word -> word, word -> 1, Integer::sum));

仅查找特定单词:

Map<String, Integer> wordCount = Arrays.stream(words)
    .map(String::toLowerCase)
    .filter(word -> wordsToMatch.contains(word))
    .collect(Collectors.toMap(word -> word, word -> 1, Integer::sum));

其中,wordsToMatch 可以是您要查找的单词的集合或列表。

关于Java - 推文计数器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36015870/

相关文章:

java - 如何从推文中包含的 't.co' URL 中提取图像?

java - org.apache.axis2.AxisFault : The system is attempting to engage a module that is not available: addressing

java - Spring Boot restTemplate POST 请求 bad_certificate,但在 SOAPUI 和 Postman 中有效

java - 正则表达式:URL重写任何不带扩展名的路径

ios - Facebook 和 Twitter 移动应用程序是否使用 Safari 浏览器?

php - Facebook/Twitter/Google+ 自定义对话框和带有计数器的按钮?

java - 如何在 Vaadin 8 中渲染网格的 LocalDateRenderer

java - 忽略 JUnit 测试

ios - 如何检查 RegEx 是否返回 nil?

regex - 如果相邻单词以相同字母开头,则将空格替换为 "/",否则 "&"Excel 宏 VBA