首页 > Java > java教程 > 在Java中递归地计算子字符串出现的次数

在Java中递归地计算子字符串出现的次数

王林
发布: 2023-09-17 19:49:02
转载
1204 人浏览过

在Java中递归地计算子字符串出现的次数

给定两个字符串 str_1 和 str_2。目标是使用递归过程计算字符串 str1 中子字符串 str2 的出现次数。

递归函数是在其定义中调用自身的函数。

如果 str1 是 "I know that you know that i know",str2 是 "know"

出现次数为 - 3

让我们通过示例来理解。

例如

输入

str1 = "TPisTPareTPamTP", str2 = "TP";
登录后复制

输出

Count of occurrences of a substring recursively are: 4
登录后复制
登录后复制

Explanation

的中文翻译为:

解释

The substring TP occurs 4 times in str1.
登录后复制

输入

str1 = "HiHOwAReyouHiHi" str2 = "Hi"
登录后复制

输出

Count of occurrences of a substring recursively are: 3
登录后复制

Explanation

的中文翻译为:

解释

The substring Hi occurs 3 times in str1.
登录后复制

下面程序中使用的方法如下 -

在这种方法中,我们将使用 java 中的 contains() 方法搜索 str2 在 str1 中的出现。如果str2存在于str1中,则返回true。如果为 true,请使用 java 中的 ReplaceFirst() 方法将其替换为“”,然后将返回值加 1 以增加计数,从而从 str1 中删除第一个匹配项。

  • 取两个字符串作为str1和str2。

  • 递归方法 subsrting_rec(String str, String sub) 接受字符串 str 及其子字符串 sub 并返回 sub 在 str 中出现的次数.

  • 检查str.contains(sub)是否为true。 ( str 有 sub )

  • 如果为 true,则使用 str.replaceFirst(sub,””) 将第一次出现的 sub 替换为“”。

  • 在 subsrting_rec(String str, String sub) 的递归调用中执行此操作。

  • 在所有递归结束时,所有返回值的总和为 count .

  • 打印结果。

示例

 实时演示

public class recursive{
   public static void main(String args[]){
      String str1 = "TPisTPareTPamTP", str2 = "TP";
      System.out.println("Count of occurrences of a substring recursively are: "+subsrting_rec(str1, str2));
   }
   static int subsrting_rec(String str, String sub){
      if (str.contains(sub)){
         return 1 + subsrting_rec(str.replaceFirst(sub, ""), sub);
      }
      return 0;
   }
}
登录后复制

输出

如果我们运行上面的代码,它将生成以下输出 -

Count of occurrences of a substring recursively are: 4
登录后复制
登录后复制

以上是在Java中递归地计算子字符串出现的次数的详细内容。更多信息请关注PHP中文网其他相关文章!

相关标签:
来源:tutorialspoint.com
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板