自己写了一个计算字符串中子串出现的次数的程序,不知道大家有没有更好的算法拿来分享下!
自己写了一个计算字符串中子串出现的次数的程序,不知道大家有没有更好的算法拿来分享下!package com.niit.demo;
import java.util.Scanner;
public class Str
{
private static int sum;
public static void main(String[] args) {
System.out.println("请输入字符串:");
Scanner sn=new Scanner(System.in);
String sur=sn.next();
System.out.println("请输入您要统计的子字符串:");
String dest=sn.next();
System.out.println("正在统计子字符串出现的次数...");
Str s=new Str();
int times=s.fun(sur,dest);
System.out.println("出现的次数为:"+times);
}
public int fun(String sur,String dest)
{
int index=sur.indexOf(dest);
int last=sur.lastIndexOf(dest);
if(index!=-1 && last!=-1 )
{
if(index==last)
{
sum=1;
}
else
{
String temp = sur.substring(index, sur.length());
while (true) {
int x = temp.indexOf(dest);
if (x == -1) {
break;
} else {
sum++;
temp = temp.substring(x+dest.length(), temp.length());
}
}
}
}
return sum;
}
}