首页 >Java >java教程 >如何高效统计字符串中子字符串的出现次数?

如何高效统计字符串中子字符串的出现次数?

Barbara Streisand
Barbara Streisand原创
2024-12-18 13:54:10816浏览

How to Efficiently Count Substring Occurrences in a String?

查找字符串中出现的子字符串

在下面的代码中,我们的目标是确定子字符串 findStr 在字符串中出现的次数string str:

String str = "helloslkhellodjladfjhello";
String findStr = "hello";
int lastIndex = 0;
int count = 0;

while (lastIndex != -1) {
    lastIndex = str.indexOf(findStr, lastIndex);

    if (lastIndex != -1)
        count++;

    lastIndex += findStr.length();
}

System.out.println(count);

但是,该算法在某些情况下可能无法终止。问题在于,lastIndex = findStr.length() 可能会导致算法搜索超出字符串末尾的位置。为了解决这个问题,我们可以使用以下方法:

String str = "helloslkhellodjladfjhello";
String findStr = "hello";
int count = StringUtils.countMatches(str, findStr);
System.out.println(count);

此代码利用 Apache Commons Lang 中的 StringUtils.countMatches 方法,该方法为计算子字符串出现次数提供了更强大、更高效的解决方案。

以上是如何高效统计字符串中子字符串的出现次数?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn