我正在尝试计算某个单词在一段文本中使用的次数,即String text
. 我是否必须创建一个新方法
public int countWords(....) {
}
或者Java中有什么现成的东西?谢谢
我正在尝试计算某个单词在一段文本中使用的次数,即String text
. 我是否必须创建一个新方法
public int countWords(....) {
}
或者Java中有什么现成的东西?谢谢
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 ++;
这是使用纯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;
}
这是我的解决方案:
Pattern myPattern = Pattern.compile("word");
Matcher myMatcher = myPattern.matcher("word");
int count = 0;
while (myMatcher.find()){
count ++;
}
这可能过于复杂了,但是,
我们可以使用 aStringTokenizer
来标记String text
基于空格的分隔符。
您将使用该nextToken()
方法获取每个单词并将其与您的搜索词进行比较。
int counter = 0;
while(myString.contains("textLookingFor")){
myString.replaceFirst("textLookingFor","");
counter++;
}