java 11-8 在大串中查找小串的案例
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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 在大串中查找小串的案例的主要内容,如果未能解决你的问题,请参考以下文章