0

我正在尝试计算某个单词在一段文本中使用的次数,即String text. 我是否必须创建一个新方法

public int countWords(....) {

}

或者Java中有什么现成的东西?谢谢

4

5 回答 5

2

StringUtils.countMatches像这样使用:

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

这是参考

希望这可以帮助!

编辑:

好吧,在这种情况下,您可以使用 Regex 来解决您的问题。使用Matcher类:

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

int count = 0;
while (myMatcher.find())
    count ++;
于 2013-09-24T21:51:46.167 回答
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;
}
于 2013-09-24T21:56:19.277 回答
1

这是我的解决方案:

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

int count = 0;
while (myMatcher.find()){
    count ++;
}
于 2013-09-25T03:02:14.920 回答
1

这可能过于复杂了,但是,

我们可以使用 aStringTokenizer来标记String text 基于空格的分隔符。

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

于 2013-09-24T21:53:43.320 回答
1
int counter = 0;
while(myString.contains("textLookingFor")){
myString.replaceFirst("textLookingFor","");
counter++;
}
于 2013-09-24T21:53:44.357 回答