首页 > 代码库 > java 11-8 在大串中查找小串的案例

java 11-8 在大串中查找小串的案例


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:参数列表:两个字符串,大串和小串

 1 public class StringTest3 { 2  3 public static void main(String[] args) { 4 //定义已知大串和小串 5 String maxstring = "woaijavawozhenaijavawozhendeaijavawozhendehenaijavaxinbuxinwoaijavagun"; 6 String minstring = "java"; 7  8 //调用getcount方法 9 int count = getcount(maxstring,minstring);10 System.out.println("java在这个大串中出现了"+count+"次");11 }12 13 //定义这个方法14 public static int getcount(String max,String min){15 //定义一个统计变量16 int count = 0 ;17 18 //在大串中查找小串是否存在,用 int indexOf(String str):返回指定字符在此字符串中第一次出现处的索引。19 int index = max.indexOf(min);20 21 //进行索引的判断22 while(index != -1){23 //统计变量自增24 count ++;25 26 //从得到的索引开始,再加上小串的长度,到字符串的最后,开始截取一个新的字符串,再把这个字符串赋值给大串,替换之前的大串27 // String substring(int start):从指定位置开始截取字符串,默认到末尾。    28 29 max = max.substring(index+min.length());    30 31 index = max.indexOf(min);//再次在大串中查找小串是否存在32 }33 return count;34 35 }36 37 }

 


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:参数列表:两个字符串,大串和小串


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

 

java 11-8 在大串中查找小串的案例