首页 >Java >java教程 >为什么我的子串计数算法不停止?

为什么我的子串计数算法不停止?

Mary-Kate Olsen
Mary-Kate Olsen原创
2024-12-15 20:31:10369浏览

Why Doesn't My Substring Counting Algorithm Halt?

为什么给定的算法没有停止?

在提供的算法中,尝试查找子字符串出现的次数在一个字符串中。然而,该算法被设计为一直持续到字符串中子字符串的最后一个索引变为-1。这个条件永远不会满足,因为最后一个索引总是通过添加子字符串的长度来更新。因此,该算法将无限期地继续搜索子字符串,永不终止。

使用 Apache Commons Lang 进行子字符串计数

计算子字符串出现次数的另一种方法是利用 Apache Commons Lang 中的 StringUtils.countMatches 方法。该方法接受一个字符串和一个子字符串作为参数,并返回子字符串在字符串中出现的次数。使用此方法,可以通过以下代码解决原始问题:

String str = "helloslkhellodjladfjhello";
String findStr = "hello";

System.out.println(StringUtils.countMatches(str, findStr));

此代码输出:

3

它正确地计算了子字符串“hello”在字符串“helloslkhellodjladfjhello”。

以上是为什么我的子串计数算法不停止?的详细内容。更多信息请关注PHP中文网其他相关文章!

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