1. 1 /*49 【程序 49 子串出现的个数】
  2. 2 题目:计算字符串中子串出现的次数
  3. 3 */
  4. 4
  5. 5 /*分析
  6. 6 * 1、子串的出现是有标志的,如" ",*,#或者其他
  7. 7 * 2、统计子串的出现的次数只需要抓住关键标志
  8. 8 * 3、怎么判断关键字一定是子串,一个子串可能有多个关键字
  9. 9 * */
  10. 10 /*====================两种方法====================
  11. 11 * 方法一:使用String类的substring(indexStart,indexEnd)方法
  12. 12 * str.substring(indexStart,indexEnd)表示:
  13. 13 * 截取方法调用者(即str)的从indexStart到indexEnd
  14. 14 * (包括indexStart,不包括indexEnd;即含头不含尾、或左闭右开区间内的子字符串)
  15. 15 * 1、count用来接收子字符串substr在字符串str中出现的次数
  16. 16 * 2、使用for循环从字符串的0位置开始循环截取和子字符串长度相同的字符串;
  17. 17 * 3、然后判断截取的字符串是否和子字符串substr相同,若相同则count加一。
  18. 18 * 原理:利用for循环遍里所有符合子串长度的子串,如果相同,则count++
  19. 19 * 方法二:使用使用String类的indexOf()方法
  20. 20 * 1、indexOf(String str): 返回指定字符str在字符串中(方法调用者)第一次出现处的索引,如果此字符串中没有这样的字符,则返回 -1。
  21. 21 * 2、indexOf(String str, int index): 返回从 index 位置开始查找指定字符str在字符串中第一次出现处的索引,如果此字符串中没有这样的字符,则返回 -1
  22. 22 * 原理:找到第一次出现子串的位置,count++,第二次以此为起始,再找到第一次出现子串的位置,count++。。。重复之前的操作,直到字符串全部查找完毕
  23. 23 * */
  24. 24
  25. 25 package homework;
  26. 26
  27. 27 public class _49 {
  28. 28
  29. 29 public static void main(String[] args) {
  30. 30 //声明字符串
  31. 31 String str="wangyongqinwangyongqinwangyongqinwangyongqin";
  32. 32 //子串
  33. 33 String str_son="wang";
  34. 34 System.out.println("子串共出现了:"+Counter_2(str, str_son)+"次");
  35. 35 }
  36. 36
  37. 37 // //子串出现次数统计的函数(方法一)
  38. 38 // private static int Counter_1(String str,String str_son) {
  39. 39 // //计数器
  40. 40 // int counter=0;
  41. 41 //
  42. 42 // return counter;
  43. 43 //
  44. 44 // }
  45. 45
  46. 46
  47. 47 //子串出现次数统计的函数(方法二)
  48. 48 private static int Counter_2(String str,String str_son) {
  49. 49 //计数器
  50. 50 int counter=0;
  51. 51 //从字符串起始位置开始查找
  52. 52 int i=0;
  53. 53 //开始查找
  54. 54 while(str.indexOf(str_son,i)!=-1){ //不等于-1意味着查找到了子串
  55. 55 counter++; //找到子串就加1
  56. 56 i=str.indexOf(str_son,i)+str_son.length(); //从查到的子串结束后开始继续查找(indexOf返回的是查找到的子串的起始位置)
  57. 57 // System.err.println(str.indexOf(str_son,i)+" "+i+" "+str_son.length());//测试
  58. 58 }
  59. 59 return counter;
  60. 60 }
  61. 61
  62. 62 }

java例题_49 计算子串出现的次数的更多相关文章

  1. 【转】计算Java List中的重复项出现次数

    本文演示如何使用Collections.frequency和Map来计算重复项出现的次数.(Collections.frequency在JDK 1.5版本以后支持) package com.qiyad ...

  2. hdu 3065 AC自动机(各子串出现的次数)

    病毒侵袭持续中 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Sub ...

  3. Java基础-时间复杂度计算方式

    Java基础-时间复杂度计算方式 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任.   时间复杂度通常是衡量算法的优劣的,衡量算法的时间严格来讲是很难衡量的,由于不同的机器性能不用环境 ...

  4. 计算数字出现的次数 Exercise07_03

    import java.util.Scanner; /** * @author 冰樱梦 * 时间:2018年下半年 * 题目:计算数字出现的次数 * */ public class Exercise0 ...

  5. 【USACO 3.1】Contact(01子串按出现次数排序)

    题意:给你一个01字符串,将长度为a到b之间(包含a.b)的子串按照出现次数排序.注意输入输出格式 题解:01子串对应一个二进制,为了区别11和011这样的不同子串,我们把长度也记录下来,官方题解是在 ...

  6. 【Java】Float计算不准确

    大家可能都遇到过,float在计算某些值时,会有不准确的情况. 比如如下情况: > 计算不准确 package com.nicchagil.study.java.demo.No10float计算 ...

  7. 【转】Java中字符串中子串的查找共有四种方法(indexof())

    原文网址:http://wfly2004.blog.163.com/blog/static/1176427201032692927349/ Java中字符串中子串的查找共有四种方法,如下:1.int ...

  8. Java中字符串中子串的查找共有四种方法(indexof())

    Java中字符串中子串的查找共有四种方法(indexof()) Java中字符串中子串的查找共有四种方法,如下:1.int indexOf(String str) :返回第一次出现的指定子字符串在此字 ...

  9. python之Counter类:计算序列中出现次数最多的元素

    Counter类:计算序列中出现次数最多的元素 from collections import Counter c = Counter('abcdefaddffccef') print('完整的Cou ...

随机推荐

  1. js 深入原理讲解系列-事件循环

    js 深入原理讲解系列-事件循环 能看懂这一题你就掌握了 js 事件循环的核心原理 不要专业的术语,说人话,讲明白! Q: 输出下面 console.log 的正确的顺序? console.log(' ...

  2. JAMstack (JavaScript + APIs + Markup)

    JAMstack (JavaScript + APIs + Markup) The modern way to build Websites and Apps that delivers better ...

  3. Taro API

    Taro API Taro 的 API 包括 Taro 内置提供的 API 以及对小程序的端能力 API 的封装. https://taro-docs.jd.com/taro/docs/apis/ab ...

  4. git alias & zsh

    git alias & zsh VPN & git work tree # git pull === gp ➜ .git git:(feature/select-seat-system ...

  5. Baccarat中挖矿、兑换和做市的三角关系是什么?

    NGK在这波DeFi潮中,推出了Baccarat,为用户带来了流动性挖矿收益,今天笔者就讲一讲Baccarat中挖矿.兑换和做市的关系. 兑换和做市是什么关系呢?众所周知,换币者,是用一种货币去换另一 ...

  6. 聊一下PBN程序图例中的XTT

       PBN航路点的定位容差用XTT与ATT来表示,ATT=0.8*XTT.保护区半宽用1.5*XTT+BV计算得到,BV值在不同的航段取值不同. 对于A至E类航空器,距ARP 30nm以外BV值为2 ...

  7. ASP.NET Core中如何对不同类型的用户进行区别限流

    老板提出了一个新需求,从某某天起,免费用户每天只能查询100次,收费用户100W次. 这是一个限流问题,聪明的你也一定想到了如何去做:记录用户每一天的查询次数,然后根据当前用户的类型使用不同的数字做比 ...

  8. C++算法代码——[TYVJ]单数?双数?

    题目来自:http://218.5.5.242:9018/JudgeOnline/problem.php?id=1178 题目描述 Bessie那惨无人道的二年级老师搞了一个有  N  (1  < ...

  9. 学习笔记——JVM性能调优之 jmap

    jmap jmap(JVM Memory Map)命令可生成head dump文件,还可查询finalize执行队列.Java堆和永久代的详细信息. 通过配置启动参数:-XX:+HeapDumpOnO ...

  10. React高级

    1.React应用 1.1创建应用 创建项目可以使用react脚手架,创建步骤如下 1)安装react脚手架 npm i -g create-react-app 2)创建项目 create-react ...