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

在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中递归地计算子字符串出现的次数的详细内容,更多请关注其它相关文章!