先来看题目. 题目很简单,就是一个统计次数的问题,相信大家经常遇到这种问题.
1.键盘录入一个大字符串,再录入一个小字符串
2.统计小字符串在大字符串中出现的次数
3.代码运行打印格式:
请输入大字串:woaiheima,heimabutongyubaima,wulunheimahaishibaima,zhaodaogongzuojiushihaoma
请输入小字符串:heima
控制台输出:共出现3次0
分析题目: 首先我们要先按要求输入两端字符,这里我们要用到Scanner了. 输入完毕后,开始想办法做题了. 首先,做这道题有很多方法,而且我也尝试过很多方法,但是最后我认定,这个方法是最简单,而且最容易理解的一个方法.
首先, 我们要把输出的两段话看成是一个字符组,然后用数组长度进行比较,这样就很直观了. 但是这两段字符串又不直接比较.所以我们就想到了另一个方法. replace方法. 用""符号把大字符串中的heima全部替换掉. 然后输出一个新的字符组. 这样一来我们就可以拿老的字符数组和新的替换后的字符数组的长度进行比较. 拿大的减去小的.得到的就是一点表示长度差的数值. 注意这并不是我们要的最终数值. 因为被替换的那段字符串本身也有长度. 所以我们要拿着这个值来除以被替换的字符串的长度. 最终得出的值就是我们想要的结果了
public class homework1 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
// 这里输入"woaiheima,heimabutongyubaima,wulunheimahaishibaima,zhaodaogongzuojiushihaoma"
String sr = sc.next();
System.out.println(sr);
Scanner sc2 = new Scanner(System.in);
String sr2 = sc2.next();
//heima
System.out.println(sr2);
String sr3 = sr.replace("heima","");
System.out.println((sr.length()-sr3.length()/sr.length)); |
|