首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在一行中计算特定单词的频率?

如何在一行中计算特定单词的频率?
EN

Stack Overflow用户
提问于 2010-11-16 23:17:01
回答 7查看 7.9K关注 0票数 4

我想知道,如果我有一个单行字符串,那么如何使用简单的java代码计算该字符串中特定单词的频率?!

提前谢谢..。

我要找的是java中的一个示例逻辑代码,它用于搜索句子中的特定单词。我正在构建一个垃圾邮件过滤器,它需要读取行,然后分类。

EN

回答 7

Stack Overflow用户

发布于 2010-11-16 23:22:44

来自StringUtils公朗有:

代码语言:javascript
复制
StringUtils.countMatches(string, searchedFor);
票数 10
EN

Stack Overflow用户

发布于 2010-11-16 23:41:22

您可以使用正则表达式。代码的一个例子是:

代码语言:javascript
复制
public int count(String word, String line){
    Pattern pattern = Pattern.compile(word);
    Matcher matcher = pattern.matcher(line);
    int counter = 0;
    while (matcher.find())
        counter++;
    return counter;
}
票数 4
EN

Stack Overflow用户

发布于 2010-11-16 23:23:00

第一次被空格分割(见String#split)

然后用地图将单词按频率作图。

代码语言:javascript
复制
String [] words = line.split(" ");

Map<String,Integer> frequency = new Map <String,Integer>();

for (String word:words){

    Integer f = frequency.get(word);
    frequency.put(word,f+1);
}

然后,您就可以找到一个特定的单词:

代码语言:javascript
复制
frequency.get(word)
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4200033

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档