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