我试图计算一段文字中使用某个单词的次数,即String text
。我是否必须创建新方法
public int countWords(....) {
}
或者Java中有没有现成的东西? 感谢
答案 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 ++;
}