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:参数列表:两个字符串,大串和小串
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 在大串中查找小串的案例的更多相关文章
- c语言,strcspn,在串中查找第一个给定字符集内容的段
函数名: strcspn 功 能: 在串中查找第一个给定字符集内容的段 用 法: int strcspn(char *str1, char *str2); 程序例: #include <stdi ...
- java之字符串中查找字串的常见方法
1.int indexOf(String str) :返回第一次出现的指定子字符串在此字符串中的索引. int indexOf(String str, int startIndex):从指定 ...
- Java实现 LeetCode 609 在系统中查找重复文件(阅读理解+暴力大法)
609. 在系统中查找重复文件 给定一个目录信息列表,包括目录路径,以及该目录中的所有包含内容的文件,您需要找到文件系统中的所有重复文件组的路径.一组重复的文件至少包括二个具有完全相同内容的文件. 输 ...
- MYSQL - JSON串中查找key对应的值
1.建表 -- 建表 drop table if exists ta_product2; CREATE TABLE ta_product2( id int primary key auto_incre ...
- 大div中嵌套小div,点击大div时隐藏,点击小div不隐藏
给小div添加一个click事件 <div onClick="event.cancelBubble = true"> //小div
- 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 ...
- [C++] 习题 2.18 倒序查找字串
目录 前置技能 字符串 KMP 算法 需求描述 概要设计 具体实现 string.cpp strmatching.cpp main.cpp 倒序查找字串: 设计一个算法,在串 str 中查找字串 su ...
- HDOJ-2896(AC自动机+文本串中出现了哪几个模板串)
病毒侵袭 HDOJ-2896 主要使用AC自动机解决,其次在query函数中改变一下,用来记录每个模板串出现的次数,还有insert函数中记录模板串的编号 需要注意最好使用结构体,而且不能一次性使用m ...
- Linux如何查找大文件或目录总结及在全部目录中查找
在Windows系统中,我们可以使用TreeSize工具查找一些大文件或文件夹,非常的方便高效,在Linux系统中,如何去搜索一些比较大的文件呢?下面我整理了一下在Linux系统中如何查找大文件或文件 ...
随机推荐
- jQuery owlcarousel 旋转木马
owlcarousel是一款猫头鹰旋转木马插件.OwlCarousel优势兼容所有浏览器支持响应式支持 CSS3 过度支持触摸事件支持 JSON 及自定义 JSON 格式支持进度条支持自定义事件支持延 ...
- JavaScript基础13——js的string对象
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
- JS数组的forEach方法(兼容所有浏览器)
//->自己在内置类的原型上扩展一个myForEach来处理forEach不兼容的问题//callBack:回调函数,遍历数组中的一项,就要执行一次callBack//context:改变cal ...
- C#进制转换
//十进制转二进制 Console.WriteLine(Convert.ToString(69, 2)); //十进制转八进制 Console.WriteLine(Convert.ToString(6 ...
- CRM 2013 移动终端 介绍和PAD下载地址
IPHONE 浏览器界同 Pad 端 APP (目前不支持中文,大家可以用美国账号下载,谁有分享一下) https://itunes.apple.com/en/app/microsoft-dynam ...
- 在Android开发中使用Ant 一:环境的搭建及入门
配置Ant环境 下载Ant:http://ant.apache.org/bindownload.cgi 在windows上应该选择zip压缩包,将zip压缩包解压到一个目录. 打开系统环境变量,在系统 ...
- iOS 学习 - 7.限制 TextField 输入字符长度
#pragma mark -- TextField代理 -(BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange: ...
- Android 之 自动匹配字符AutoCompleteTextView
AutoCompleteTextView是自动匹配字符,当我们输入一个单词或一段话的前几个字时,就会自动为你匹配后面的内容看效果图: 下面是代码: MainActivit: package com.e ...
- LeetCode 3 Longest Substring Without Repeating Characters(最长不重复子序列)
题目来源:https://leetcode.com/problems/longest-substring-without-repeating-characters/ Given a string, f ...
- 敏捷软件开发(3)---COMMAND 模式 & Active Object 模式
COMMAND 模式 command模式非常简单,简单到你无法想象的地方. public interface Command { void execute(); } 这就是一个command模式的样子 ...