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. FAQ_1_陌生的VERSION.SDK_INT

    看到VERSION.SDK_INT不禁诧异,这是何物?! 看API的定义,如下: 原来是一个常量值.但是这个常量值可以根据系统的不同而不同哟!为了揭开其神秘的面纱,将源码ctrl如下: 可以看出,获取 ...

  2. Force.com微信开发系列(四)申请Access Token及自定义菜单之创建菜单

    在微信接口开发中,许多服务的使用都离不开Access Token,Access Token相当于打开这些服务的钥匙,正常情况下会在7200秒内失效,重复获取将导致上次获取的Token失效,本文将首先介 ...

  3. 读书笔记2014第6本:《The Hunger Games》

    以前从未读过一本完整的英文小说,所有就在今年的读书目标中增加了一本英文小说,但在头四个月内一直没有下定决定读哪一本.一次偶然从SUN的QQ空间中看到Mockingjay,说是不错的英文小说,好像已经是 ...

  4. VS2015发布Webservice

    第一步:开启IIs:在控制面板程序——>程序功能——>打开或关闭windows功能,把“Internet信息服务”下面的“FTP服务器”.“Web管理工具”.“万维网服务”全部勾上,然后点 ...

  5. linux中fork()函数详解(原创!!实例讲解) (转载)

     一.fork入门知识 一个进程,包括代码.数据和分配给进程的资源.fork()函数通过系统调用创建一个与原来进程几乎完全相同的进程, 也就是两个进程可以做完全相同的事,但如果初始参数或者传入的变量不 ...

  6. Android 5中不同效果的Toast

    一.运行的结果 二.主要的代码 package com.otn.android.toast; import java.util.Timer; import java.util.TimerTask; i ...

  7. 安卓问题集-Installation error: INSTALL_PARSE_FAILED_MANIFEST_MALFORMED

    错误出现原因: 1.没有 AndroidManifest.xml file文件(出现几率较小) 2. 是你在外面修改了包名而在 AndroidManifest.xml file.文件中没有同步过去导致 ...

  8. Android—Ormlite框架简单的操作数据库

    大家在Android项目中或多或少的都会使用数据库,为了提高我们的开发效率,当然少不了数据库ORM框架了,尤其是某些数据库操作特别频繁的app:本篇博客将详细介绍ORMLite的简易用法. 下面开始介 ...

  9. 关于报malformed or corrupted AST file: 'Unable to load module 的错~

    今天早上 一运行程序 居然报错,我都惊呆了,昨天明明好好的-但是百度是强大的- 报错内容: malformed or corrupted AST file: 'Unable to load modul ...

  10. Visual Studio 2013常用快捷键

    ---恢复内容开始--- 代码选择 1  区域代码选择 按Shift选择整(行)块代码,可配合四个方向键(左右键:选择单个字符,上下键:上下行的当前列).Home(当前行首).End(当前行尾).Pg ...