子串在母串中出现的次数
Posted narisu
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了子串在母串中出现的次数相关的知识,希望对你有一定的参考价值。
问题描述
下方给定的程序中,函数fun的功能是:统计substr在str中的出现次数。
比如说,字符串为aaab ljsuab
,子字符串为ab
,那么返回的结果为2.
请修改程序中的错误,使能计算正确的结果。
注意:不要修改main函数,也不要更改程序的结构。
题目中可能既会出现语法错误,也会出现逻辑错误哦~
相信你可以搞定,试试吧。
import java.util.*;
public class Main{
public static void main(String args[]){
Scanner input = new Scanner(System.in);
String str = input.nextLine();
String substr = input.nextLine();
System.out.println(fun(str, substr));
}
static int fun(String str, String substr)
{
int count = 0;
return count;
}
}
输入格式
aaab ljsuab
ab
输出格式
2
代码
参考代码一
package javaexam;
import java.util.Scanner;
public class CountSubStr
{
public static void main(String[] args)
{
Scanner input = new Scanner(System.in);
String str = input.nextLine();
String substr = input.nextLine();
System.out.print(fun(str, substr));
}
static int fun(String str, String substr)
{
int count = 0, start = 0;
while((start = str.indexOf(substr, start) + 1) > 0)
{
++count;
}
return count;
}
}
注:Java中字符串中子串的查找共有四种方法(indexof())
参考代码二
import java.util.*;
public class Main{
public static void main(String args[]){
Scanner input = new Scanner(System.in);
String str = input.nextLine();
String substr = input.nextLine();
System.out.println(fun(str, substr));
}
static int fun(String str, String substr)
{
int count = 0;
for(int i = 0; i < (str.length() - substr.length() + 1); ++i)
{
if(str.substring(i, i + substr.length()).equals(substr))
++count;
}
return count;
}
}
样例测试
aaab ljsuab
ab
2
以上是关于子串在母串中出现的次数的主要内容,如果未能解决你的问题,请参考以下文章