Java字符串查找的三种方式

 更新时间:2018年03月02日 14:19:29   作者:彬菌  
本篇文章给大家整理了关于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

相关文章

  • 简单总结单例模式的4种写法

    简单总结单例模式的4种写法

    今天带大家学习java的相关知识,文章围绕着单例模式的4种写法展开,文中有非常详细的介绍及代码示例,需要的朋友可以参考下
    2021-06-06
  • Java关键字final、static使用总结

    Java关键字final、static使用总结

    final方法不能被子类的方法覆盖,但可以被继承。用static修饰的代码块表示静态代码块,当Java虚拟机(JVM)加载类时,就会执行该代码块,下面通过本文给大家分享Java关键字final、static使用总结,感兴趣的朋友一起看看吧
    2017-07-07
  • Java垃圾回收器的方法和原理总结

    Java垃圾回收器的方法和原理总结

    本篇文章主要介绍了Java垃圾回收器的方法和原理总结,Java垃圾回收器是Java虚拟机的重要模块,具有一定的参考价值,有兴趣的可以了解一下。
    2016-12-12
  • Java实现五子棋单机版

    Java实现五子棋单机版

    这篇文章主要为大家详细介绍了Java实现五子棋单机版,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-05-05
  • Java Spring处理循环依赖详解

    Java Spring处理循环依赖详解

    这篇文章主要介绍了Java中的Spring如何处理循环依赖,依赖指的是Bean与Bean之间的依赖关系,关于更多Spring 处理循环依赖的详情,需要的朋友可以参考下面文章具体内容
    2023-04-04
  • 使用Java实现读取手机文件名称

    使用Java实现读取手机文件名称

    这篇文章主要为大家详细介绍了如何使用Java实现读取手机文件名称,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下
    2024-03-03
  • 解决IDEA maven 项目修改代码不生效,mvn clean、install后才生效

    解决IDEA maven 项目修改代码不生效,mvn clean、install后才生效

    这篇文章主要介绍了解决IDEA maven 项目修改代码不生效,mvn clean、install后才生效的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-09-09
  • Java 8新特性方法引用详细介绍

    Java 8新特性方法引用详细介绍

    这篇文章主要介绍了Java 8新特性方法引用详细介绍的相关资料,这里对新特性 方法引用做的资料整理,具有参考价值,需要的朋友可以参考下
    2016-12-12
  • Java深入理解代码块的使用细节

    Java深入理解代码块的使用细节

    所谓代码块是指用"{}"括起来的一段代码,根据其位置和声明的不同,可以分为普通代码块、构造块、静态块、和同步代码块。如果在代码块前加上 synchronized关键字,则此代码块就成为同步代码块
    2022-05-05
  • JAVA SFTP文件上传、下载及批量下载实例

    JAVA SFTP文件上传、下载及批量下载实例

    本篇文章主要介绍了JAVA SFTP文件上传、下载及批量下载实例,具有一定的参考价值,感兴趣的小伙伴们可以参考一下。
    2017-03-03

最新评论