• 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 }
    何事都只需坚持.. 难? 维熟尔。 LZL的自学历程...只需坚持
  • 相关阅读:
    Vue 全局过滤器和局部过滤器使用方式
    Vue 标签显示/隐藏的方式对比demo
    OpenSSL SSL_read: Connection was reset, errno 10054
    Vue 自定义全局指令和局部指令demo
    Vue 列表渲染demo
    Vue Class样式和style样式编写
    vue中的函数(methods),计算属性(computed),监听器(watch)的区别demo
    Vue 常用指令
    针对 WebSocket 协议的 Locust 压测脚本实现(基于 Locust 1.0 以上版本)
    Locust 脚本开发入门(4)
  • 原文地址:https://www.cnblogs.com/LZL-student/p/5877329.html
Copyright © 2020-2023  润新知