在Java中递归计数子字符串的出现
给定两个字符串str_1和str_2。目标是使用递归过程计算字符串str1中子字符串str2的出现次数。
递归函数是在其定义内具有自己的调用的函数。
如果str1是“我知道你知道我知道”,str2 =“知道”
发生数是-3
让我们通过示例来理解。
例如
输入值
str1 = "TPisTPareTPamTP", str2 = "TP";输出结果
子字符串的递归计数为: 4
说明
The substring TP occurs 4 times in str1.
输入值
str1 = "HiHOwAReyouHiHi" str2 = "Hi"输出结果
子字符串的递归计数为: 3
说明
The substring Hi occurs 3 times in str1.
以下程序中使用的方法如下-
在这种方法中,我们将使用以下命令搜索str1中str2的出现 contains()Java中的方法。如果str1中存在str2,它将返回true。如果为true,请使用replaceFirst() java中的方法,并将1加到返回值以增加计数。
将两个字符串分别作为str1和str2。
递归方法 subsrting_rec(String str, String sub) 接受字符串str及其子字符串sub,并返回str中出现sub的次数。
检查是否 str.contains(sub)是真的。(str有子)
如果为true,则使用str.replaceFirst(sub,“”)用“”替换第一次出现的sub。
在递归调用中执行此操作 subsrting_rec(String str, String sub)。
在所有递归的末尾,将计算所有返回值的总和。
打印结果。
示例
public class recursive{输出结果public static void main(String args[]){
String str1 = "TPisTPareTPamTP", str2 = "TP";
System.out.println("子字符串的递归计数为: "+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;
}
}
如果我们运行上面的代码,它将生成以下输出-
子字符串的递归计数为: 4
以上是 在Java中递归计数子字符串的出现 的全部内容, 来源链接: utcz.com/z/352386.html