Java字符串查找的三种方式
作者:彬菌 发布时间:2023-11-18 22:00:30
标签:Java,字符串查找
indexof方法:
注解:indexOf 方法返回一个整数值,指出 String 对象内子字符串的开始位置。如果没有找到子字符串,则返回-1。
public class IndexOf{
public static void main(String[] args){
String s="李宏#王海#林巧#陆寻#唐梅";
String q="#"; //需要查找的字符串
String err="*"; //不存在的字符串
int i=0;
for(int j=0;j<s.length();j++){ //循环所有字符串
String get=s.substring(j,j+1); //打印所有字符串
if(get.equals(q)){ //判断#字是否出现
i++; //#字出现次数
}
}
System.out.println("总共有"+s.length()+"个字符串");
System.out.println("#字共出现了"+i+"次"); //#字符总共出现的次数
System.out.println("第一个#字出现在字符串的"+s.indexOf(q)+"个位置");
if(s.indexOf(err)==-1){ //返回-1则表示字符不存在字符串中
System.out.println("*字在字符串中不存在");
}
}
}
运行结果:
总共有14个字符串
#字共出现了4次
第一个#字出现在字符串的2个位置
*字在字符串中不存在
startsWith方法:
注解:startsWith() 方法用于检测字符串是否以指定的前缀开始。
public class StartWith{
public static void main(String[] args){
String id[]= {"53011198902280308","52011198711038269","53011197701328291"};
int number = 0;
System.out.println("符合条件的字符串有");
for(int i=0;i<id.length;i++) {
if(id[i].startsWith("530") == true) {
number++;
System.out.println(id[i]);
}
}
System.out.println("前面3个字符为‘530'的身份证有:"+number+"个");
}
}
运行结果:
符合条件的字符串有
53011198902280308
53011197701328291
前面3个字符为‘530'的身份证有:2个
regionMatches方法:
注解:regionMatches() 方法用于检测两个字符串在一个区域内是否相等。
public class RegionMatches{
public static void main(String[] args) {
int number = 0;
String s = "student;entropy;ENgage,English,client,eye";
String q="en"; //需要查找的字符串
for (int k=0;k<s.length();k++){
//true为不区分大小写,k为所有字符串,q为需要查找的字符串,0为从字符串1的位置开始,2为需要查找的字符串长度为2
if(s.regionMatches(true, k, q, 0, 2)){
number++;
System.out.println("en字符在字符串的第"+k+"个位置");
}
}
System.out.println("含有‘en'子串的字符串的总数有:"+number);
}
}
运行结果:
en字符在字符串的第4个位置
en字符在字符串的第8个位置
en字符在字符串的第16个位置
en字符在字符串的第23个位置
en字符在字符串的第34个位置
含有‘en'子串的字符串的总数有:5
来源:https://www.idaobin.com/archives/387.html


猜你喜欢
- 前言我们在上一篇文章教大家使用ImageView+TextView的组合自定义控件...可能在开发中你还需要其他功能,例如:按下效果,可以在
- 中国科学院开源协会镜像站地址:IPV4/IPV6: http://mirrors.opencas.cn 端口:80IPV4/IPV6: ht
- 末日这天写篇博客吧,既然没来,那就纪念一下。这次谈谈自制控件,也就是自定义控件,先上图,再说1.扩展OpenFileDialog,在Open
- Java微信跳一跳操作指南,指哪挑哪。本文的思路是通过adb来控制手机进行操作,通过java写一个jframe覆盖在手机屏幕上,用鼠标获取跳
- java类的方法,我特别喜欢《java编程思想》里面的描述,这本书说java类之间的相互通信是通过消息。比如顾客类的对象调用一个eat方法,
- 同步客户端套接字示例 下面的示例程序创建一个连接到服务器的客户端。该客户端是用同步套接字生成的,因此挂起客户端应用程
- 在并发多线程的情况下,为了保证数据安全性,一般我们会对数据进行加锁,通常使用Synchronized或者ReentrantLock同步锁。S
- 一、Netty简介Netty 是一个基于NIO的客户、服务器端的编程框架,使用Netty 可以确保你快速和简单的开发出一个网络应用,例如实现
- 1、抽象类1.1 什么是抽象类?1.1.1 对抽象类的理解1.1.2 关于抽象类类与类之间具有共同特征,将这些共同特征提取出来,形成的就是抽
- 一 Flow使用注意事项多个Flow不能放到一个lifecycleScope.launch里去collect{},因为进入collect{}
- 首先是获取特定进程对象,可以使用Process.GetProcesses()方法来获取系统中运行的所有进程,或者使用Process.GetC
- 1.Feign传统方式的不足①.在微服务架构中,当我们使用Feign传统方式进行服务调用的时候,需要在每个服务消费者中添加FeignClie
- What内含一个或多个maven模块的SpringBoot项目称为SpringBoot多模块项目Why便于维护 将一个大的单体项目分成多个子
- 1|1简介最近基于最新的Activiti7配置了SpringBoot2。简单上手使用了一番。发现市面上解决Activiti7的教程很少,采坑
- mapper-locations的作用说明1、mapper-locationsmapper-locations是一个定义mapper接口位置
- /// <summary> /// List转换成DataSet /// </summary> /// <ty
- 分组类控件主要包括容器控件(Panel),分组框控件(groupBox)和选项卡控件(TabControl)等控件。一、Panel控件Pan
- 本文实例为大家分享了Android自定义StepView配送进度展示的具体代码,供大家参考,具体内容如下效果图使用可在layout文件下设置
- 本文实例讲述了Java中的匿名对象定义与用法。分享给大家供大家参考,具体如下:一 点睛匿名对象是指没有名字的对象。实际上,对于对象实例化操作
- 本文要解决在侧滑菜单右边加个文本框,并能实现文本的上下滑动和菜单的左右滚动。这里推荐可以好好看看android的触摸事件的分发机制,这里我就