查找字符串中出现的子字符串
在下面的代码中,我们的目标是确定子字符串 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中文网其他相关文章!