如何计算文本中使用单词的次数?

时间:2013-09-24 21:47:34

标签: java

我试图计算一段文字中使用某个单词的次数,即String text。我是否必须创建新方法

public int countWords(....) {

}

或者Java中有没有现成的东西? 感谢

5 个答案:

答案 0 :(得分:2)

像这样使用StringUtils.countMatches

int count = StringUtils.countMatches("abcdea","a");

以下是reference

希望这有帮助!

修改

那么,在这种情况下,您可以使用正则表达式来解决您的问题。使用Matcher类:

Pattern myPattern = Pattern.compile("YOUR_REGEX_HERE");
Matcher myMatcher = myPattern.matcher("YOUR_TEXT_HERE");

int count = 0;
while (myMatcher.find())
    count ++;

答案 1 :(得分:2)

这是使用纯Java的解决方案:

public static int countOccurences(String text, String word) {
  int occurences = 0;
  int lastIndex = text.indexOf(word);
  while (lastIndex != -1) {
    occurences++;
    lastIndex = text.indexOf(word, lastIndex + word.length());
  }
  return occurences;
}

答案 2 :(得分:1)

这可能会使它复杂化,但是,

我们可以使用StringTokenizer基于空格将String text 标记为您的分隔符。

您可以使用nextToken()方法获取每个单词并将其与搜索字词进行比较。

答案 3 :(得分:1)

int counter = 0;
while(myString.contains("textLookingFor")){
myString.replaceFirst("textLookingFor","");
counter++;
}

答案 4 :(得分:1)

这是我的解决方案:

Pattern myPattern = Pattern.compile("word");
Matcher myMatcher = myPattern.matcher("word");

int count = 0;
while (myMatcher.find()){
    count ++;
}