1、统计大串中小串出现的次数
  举例:
    在字符串"woaijavawozhenaijavawozhendeaijavawozhendehenaijavaxinbuxinwoaijavagun"
  结果:
    java出现了5次
  分析:
    1、首先已经知道字符串
      A:定义一个统计变量=0;
      B:在大串中查找小串是否存在,用 int indexOf(String str):返回指定字符在此字符串中第一次出现处的索引。
          a:如果返回的索引值是-1,则说明 大串中并不存在这个小串,输出统计变量
          b:返回的若不是-1,则是这个小串的第一个字符在大串中的索引,这个时候统计变量++
      C:从得到的索引开始,再加上小串的长度,到字符串的最后,开始截取一个新的字符串,再把这个字符串赋值给大串,替换之前的大串
        String substring(int start):从指定位置开始截取字符串,默认到末尾。
      D:再次从B开始循环,直到得到的新字符串没有了这个小串,也就是B中的a
  以上分析定义为一个方法,方法的两个要素:
      a:返回值:int
      b:参数列表:两个字符串,大串和小串

 public class StringTest3 {

 public static void main(String[] args) {
//定义已知大串和小串
String maxstring = "woaijavawozhenaijavawozhendeaijavawozhendehenaijavaxinbuxinwoaijavagun";
String minstring = "java"; //调用getcount方法
int count = getcount(maxstring,minstring);
System.out.println("java在这个大串中出现了"+count+"次");
} //定义这个方法
public static int getcount(String max,String min){
//定义一个统计变量
int count = 0 ; //在大串中查找小串是否存在,用 int indexOf(String str):返回指定字符在此字符串中第一次出现处的索引。
int index = max.indexOf(min); //进行索引的判断
while(index != -1){
//统计变量自增
count ++; //从得到的索引开始,再加上小串的长度,到字符串的最后,开始截取一个新的字符串,再把这个字符串赋值给大串,替换之前的大串
// String substring(int start):从指定位置开始截取字符串,默认到末尾。 max = max.substring(index+min.length()); index = max.indexOf(min);//再次在大串中查找小串是否存在
}
return count; } }

2、优化版 统计大串中小串出现的次数
    需求:首先输入一个大串,接着输入一个小串,查询小串在大串中出现了几次
    分析:
      1、首先键盘录入2个字符串
        A:定义一个统计变量=0;
        B:在大串中查找小串是否存在,用 int indexOf(String str):返回指定字符在此字符串中第一次出现处的索引。
            a:如果返回的索引值是-1,则说明 大串中并不存在这个小串,输出统计变量
            b:返回的若不是-1,则是这个小串的第一个字符在大串中的索引,这个时候统计变量++
        C:从得到的索引开始,再加上小串的长度,到字符串的最后,开始截取一个新的字符串,再把这个字符串赋值给大串,替换之前的大串
          String substring(int start):从指定位置开始截取字符串,默认到末尾。
        D:再次从B开始循环,直到得到的新字符串没有了这个小串,也就是B中的a
    以上分析定义为一个方法,方法的两个要素:
        a:返回值:int
        b:参数列表:两个字符串,大串和小串

 import java.util.Scanner;
public class StringText4 { public static void main(String[] args) {
//1、首先键盘录入2个字符串
Scanner sc = new Scanner(System.in);
System.out.println("请输入大串:");
String maxstring = sc.nextLine();
System.out.println("请输入小串:");
String minstring = sc.nextLine(); //调用getCount方法
int count = getCount(maxstring,minstring);
System.out.println(minstring+"在"+maxstring+"中出现了"+count+"次"); }
//定义方法
public static int getCount(String max,String min){
//定义一个统计变量
int count = 0;
//在大串中查找小串是否存在,用 int indexOf(String str):返回指定字符在此字符串中第一次出现处的索引。
int index;
while((index=max.indexOf(min))!= -1){
//当得到的索引不是-1时
count++;
//从得到的索引开始,再加上小串的长度,到字符串的最后,开始截取一个新的字符串,再把这个字符串赋值给大串,替换之前的大串
max = max.substring(max.indexOf(min)+min.length());
}
return count;
} }

java 11-8 在大串中查找小串的案例的更多相关文章

  1. c语言,strcspn,在串中查找第一个给定字符集内容的段

    函数名: strcspn 功 能: 在串中查找第一个给定字符集内容的段 用 法: int strcspn(char *str1, char *str2); 程序例: #include <stdi ...

  2. java之字符串中查找字串的常见方法

    1.int indexOf(String str) :返回第一次出现的指定子字符串在此字符串中的索引.      int indexOf(String str, int startIndex):从指定 ...

  3. Java实现 LeetCode 609 在系统中查找重复文件(阅读理解+暴力大法)

    609. 在系统中查找重复文件 给定一个目录信息列表,包括目录路径,以及该目录中的所有包含内容的文件,您需要找到文件系统中的所有重复文件组的路径.一组重复的文件至少包括二个具有完全相同内容的文件. 输 ...

  4. MYSQL - JSON串中查找key对应的值

    1.建表 -- 建表 drop table if exists ta_product2; CREATE TABLE ta_product2( id int primary key auto_incre ...

  5. 大div中嵌套小div,点击大div时隐藏,点击小div不隐藏

    给小div添加一个click事件 <div onClick="event.cancelBubble = true">  //小div

  6. Python算法题:有100只大、中、小骆驼,100框土豆,一只大骆驼可以背3框,中骆驼可以背俩框,小骆驼两只背一筐,问大中小各有多少只骆驼?

    1 for x in range(0,100): 2 for y in range(0,100): 3 for z in range(0, 100): 4 if x*3+y*2+0.5*z == 10 ...

  7. [C++] 习题 2.18 倒序查找字串

    目录 前置技能 字符串 KMP 算法 需求描述 概要设计 具体实现 string.cpp strmatching.cpp main.cpp 倒序查找字串: 设计一个算法,在串 str 中查找字串 su ...

  8. HDOJ-2896(AC自动机+文本串中出现了哪几个模板串)

    病毒侵袭 HDOJ-2896 主要使用AC自动机解决,其次在query函数中改变一下,用来记录每个模板串出现的次数,还有insert函数中记录模板串的编号 需要注意最好使用结构体,而且不能一次性使用m ...

  9. Linux如何查找大文件或目录总结及在全部目录中查找

    在Windows系统中,我们可以使用TreeSize工具查找一些大文件或文件夹,非常的方便高效,在Linux系统中,如何去搜索一些比较大的文件呢?下面我整理了一下在Linux系统中如何查找大文件或文件 ...

随机推荐

  1. xampp 访问出现New XAMPP security concept 解决办法

    最近通过手机访问本地服务器时出现以下问题: Access forbidden! New XAMPP security concept: Access to the requested director ...

  2. Android获取焦点所在控件

    View vFocus=getWindow().getDecorView().findFocus(); if(vFocus instanceof EditText) { ((EditText) vFo ...

  3. mac 下安装android studio(转)

    1)下载最新jdk8,下载android studio 2)安装jdk8,双击jdk8的安装包,将jdk8的安装包拖到Application,可能会出现这种问题:要求Mac OS X10.7.3或更高 ...

  4. Android Service使用拾遗[阿里工程师分享]

    Service作为android的四大组件之一常用来帮助我们完成一些需要放在后台处理的任务,通过startService和bindService两种方式被调用.因为Service也是在主线程中运行的, ...

  5. 真机调试出现Could not find Developer Disk Image问题解决办法

    1.升级Xcode 2. 在使用Xcode进行真机调试的时候,有时根据真机的系统不同,会出现could not find developer disk image 错误,这是由于真机系统过高或者过低, ...

  6. Mac上的软件的一些对开发者有用的使用技巧(持续更新)

    内容大纲: Google浏览器设置开发者模式 正文: 1.Google浏览器设置开发者模式

  7. android 进程间通信---Service Manager(2)

    关于servicemanager的设计: 还是这张结构图,由于ProcessState & IPCThreadState是与binder deriver交互的, 所以对于client端来说Bp ...

  8. 日常工作生活中的做人做事道理[持续更新ing]

    1.凡是预则立,不预则废 2.不能用特殊案例说明事情本身的发展规律 3.任务不能拖,需主动出击,想方设法完成 4.工作要有细致化的沟通和安排 5.解决问题和安排任务可以逆向思维的去想 6.问题要举一反 ...

  9. Effective Java 20 Prefer class hierarchies to tagged classes

    Disadvantage of tagged classes 1. Verbose (each instance has unnecessary irrelevant fields). 2. Erro ...

  10. .NET 反射的使用

    1.根据类名获取类实例 string className = "Company.BigProgram.BLL.TestClass"; Type type = Type.GetTyp ...