Java编:程统计大串中小串出现的次数

        在输入一串字符串时,在该字符串中会有个别小字符串重复出现,那么我们需要一个程序来经计算出该小字符串出现的次数:

首先我们可以先分析一下:

A:定义统计变量
 B:先在大串中找小串出现的索引,如果是 -1:说明不存在,返回统计变量
         索引不是-1,统计变量+1
C:把刚才的索引+小串的长度作为开始截取上一次的大串,返回新的字符串,把新字符串从新赋值给自身   

D:回到B

输入代码并运行:

public class Test0 {
	public static void main(String[] args) {
		String maxString="javajavajiaaaaaaaaaaa";
		String minString="java";
	
    int count = getCount(maxString, minString);
    System.out.println("Java在大串中出现了:" + count + "次");
}

public static int getCount(String maxString, String minString) {
  //定义一个统计变量
    int count = 0;
//先在大串中查找小串第一次出现的位置
 
    
    int index = maxString.indexOf(minString);
  
    while (index != -1) {
        count++;
       //把刚才是index 的索引+小串的长度作为开始位置截取上一次的大串
         int startIndex = index + minString.length();
         maxString = maxString.substring(startIndex);
        //继续查找
   
        index = maxString.indexOf(minString);
    }

    return count;
}
}

 例如在“woaijavawozhenaijavawozhendeaijavawozhendehenaijavaxinbuxinwoaijavagun”

这串字符中"java"出现的次数

运行代码可以得到为5次;

以上代码过于太长,由此我们也可可以简化一下

        

package String;
import java.util.Scanner;
public class ad {


 public static void main(String[] args) {
  Scanner sc = new Scanner(System.in);
  System.out.println("请录入一个大字符串:");
  String max = sc.nextLine();
  System.out.println("请输入一个小字符串:");
  String min = sc.nextLine();
  String str = max.replace(min, "");
  int i =(max.length() - str.length()) /min.length() ;
  System.out.println("小串字符"+min+"在大串字符"+max+"中共出现" +i + "次");
  System.out.println(str);
  
    }

}

输出结果是一样的。

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值