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系统中如何查找大文件或文件 ...
随机推荐
- HTML Jquery
在<网页制作Dreamweaver(悬浮动态分层导航)>中,运用到了jQuery的技术,轻松实现了菜单的下拉.显示.隐藏的效果,不必再用样式表一点点地修改,省去了很多麻烦,那么jQuery ...
- CSS动态伪类选择器温故-3
动态伪类选择器 伪类选择器:大家熟悉的:[:link][:visited][:hover][:active]CSS3的伪类选择器分为六种:(1)动态伪类选择器(2)目标伪类选择器(3)语言伪类选择器( ...
- JavaScript的作用域和闭包
首发于:https://mingjiezhang.github.io/ 闭包和作用域有着千丝万缕的联系. js的作用域 具体的作用域我就不展开叙述了.其中很重要的两点就是:js的作用域链机制和函数词法 ...
- ajax使用
ajax基本使用 ajax在我们的开发中是必须使用的一个技术,ajax即异步的javascript和xml但是现在我们通常使用json来完成数据的交互,ajax职责很单一就是数据的交互,发送数据接收数 ...
- AX2012 R3 Data upgrade checklist sync database step, failed to create a session;
最近在做AX2012 R3 CU9 到CU11的upgrade时 (用的Admin帐号), 在Date upgrade 的 synchronize database 这步 跑了一半,报出错误 说“fa ...
- SharePoint 2013 使用查阅项实现联动下拉框
SharePoint列表使用中,经常会用到下拉框,而有些特殊的需求,会用到联动的下拉框,在SharePoint中默认没有这样的字段,所以如果实现,我们需要自己想办法. 这里,我们介绍如何使用JQuer ...
- App开发流程之增加预编译头文件
在继续增加预编译头文件前,先稍等. Xcode为我们创建了一个模板项目,很棒!但有一点不太令人满意,问题就在下图中: 这是一个新项目的初始文件目录,几乎所有文件都在同一级目录下,随着项目文件数量急速增 ...
- 【读书笔记】iOS-NSDictionary与NSArray的比较
有时候为什么不用数组存储然后在数组里查询数值呢?字典(也称为散列表或关联数组)使用的是键查询的优化存储方式.它可以立即找出要查询的数据,而不需要遍历整个数组进行查找.对于频繁的查询和大型的数据集来说, ...
- iOS网络-06-监听Iphone的网络状态
使用系统的方法来监听网络状态 系统的方法是通过通知机制来实现网络状态的监听 实现网络状态监听的步骤 定义Reachability类型的成员变量来保存网络的状态 @property (nonatomic ...
- 高点击率的Banner设计14招
英文原文:14 design tips for more clickable banner ads 译文:http://www.uisdc.com/banner-click-rate 虽然互联网发展迅 ...