迅速学会字符串查找与替换 | 带你学《Java面向对象编程》之三十三

简介: 在日常的文本操作中经常会碰到查找与替换的操作,作为和文本并无不同的字符串同样也有相应的、丰富的操作方法。

上一篇:教你成为字符串连连看高手 | 带你学《Java面向对象编程》之三十二
【本节目标】
通过阅读本节内容,你将对字符串查找、替换相关的方法有了初步的了解,学会灵活使用相关的方法解决实际操作中遇到的各种需求。

字符串查找

从一个完整的字符串中查找子字符串的存在就属于字符串查找操作,在String类中一共提供有如下的几个查找方法。

No. 方法名称 类型 描述
01 public boolean contains(String s) 普通 判断子字符串是否存在
02 public int indexOf(String str) 普通 从头查找指定字符串的位置,找不到返回-1
03 public int indexOf(String str, int fromIndex) 普通 从指定位置查找指定字符串的位置
04 public int lastIndexOf(String str) 普通 由后向前查找指定字符串的位置
05 public int lastIndexOf(String str, int fromIndex) 普通 从指定位置由后向前查找指定字符串的位置
06 public boolean startsWith(String prefix) 普通 判断是否以指定的字符串开头
07 public boolean startsWith(String prefix, int toffset) 普通 由指定位置判断是否以指定的字符串开头
08 public boolean endsWith(String suffix) 普通 是否以指定的字符串结尾

范例:判断子字符串是否存在

public class StringDemo{
   public static void main(String args[]) {
       String str = “www.mldn.cn” ;
       System.out.println(str.contains(“mldn”)) ;    //true
       System.out.println(str.contains(“hello”)) ;    //false
   }      
}

此方法的操作相对而言比较直观一些,但是这个方法是从JDK1.5之后开始追加道程序中的功能。在JDK1.5之前如果要进行数据的查询往往只能够依靠indexOf()方法来完成。
范例:判断字符串是否存在

public class StringDemo{
   public static void main(String args[]) {
       String str = “www.mldn.cn” ;
       System.out.println(str.indexOf(“mldn”)) ;    //4,在第四个位置
       System.out.println(str.indexOf(“hello”)) ;    //-1
       if (str.indexOf(“mldn”) != -1) {
          System.out.println(“数据存在”) ;      //数据存在
       }
   }      
}

indexOf()是为了进行子字符串的查询,在一些开发之中就可以利用此形式来进行一些索引的确定。indexOf()是由前向后查找的,也可以由后向前查找。
范例:使用lastIndexOf()查找

public class StringDemo{
   public static void main(String args[]) {
       String str = “www.mldn.cn” ;
       System.out.println(str.lastIndexOf(“.”)) ;   //8
       System.out.println(str.lastIndexOf(“.”,5)) ;  //3
   }      
}

在进行字符串查找的时候也需要判断开头或结尾的操作。
范例:判断是否以指定的字符串开头或结尾

public class StringDemo{
   public static void main(String args[]) {
       String str = “**@@www.mldn.cn##” ;
       System.out.println(str.startsWith(“**”)) ;   //true
       System.out.println(str.startsWith(“@@”,2)) ; //true
       System.out.println(str.endsWith (“##”)) ;  //true
   }      
}

后面的许多设计都需要它的支持。

字符串替换

所谓的字符串替换指的是可以通过一个指定的内容进行指定字符串的替换显示,对于替换的方法主要有两个。

No. 方法名称 类型 描述
01 public String replaceAll(String regexString replacement) 普通 进行全部替换
02 public String replaceFirst(String regex, String replacement) 普通 替换首个

范例:实现替换处理

public class StringDemo{
   public static void main(String args[]) {
       String str = “helloworld” ;
       System.out.println(str.replaceAll(“l” , “X”)) ;     //heXXoworXd
       System.out.println(str.replaceFirst (“l” , “X”)) ;    //heXloworld
   }      
}

替换在之后会有更加详细的讲解,并且在开发中,尤其是设计的时候替换很重要。
想学习更多的Java的课程吗?从小白到大神,从入门到精通,更多精彩不容错过!免费为您提供更多的学习资源。
本内容视频来源于阿里云大学

下一篇:详解字符串拆、截、格式化之法 | 带你学《Java面向对象编程》之三十四
更多Java面向对象编程文章查看此处

相关文章
|
3月前
|
SQL Java 索引
java小工具util系列2:字符串工具
java小工具util系列2:字符串工具
167 83
|
20天前
|
Java
Java 面向对象编程的三大法宝:封装、继承与多态
本文介绍了Java面向对象编程中的三大核心概念:封装、继承和多态。
79 15
|
20天前
|
Java 数据安全/隐私保护 开发者
【潜意识Java】深入理解 Java 面向对象编程(OOP)
本文介绍了Java中的面向对象编程(OOP)核心概念,包括封装、继承、多态和抽象。封装通过访问控制保护数据,提高安全性;继承支持代码复用,减少冗余;多态实现灵活的行为调用;抽象则隐藏细节,简化接口设计。掌握这些概念有助于编写高效、灵活且易于维护的代码。文章通过实例详细讲解了每个概念在Java中的应用,并总结了它们的优势。
38 3
|
3月前
|
Java 开发者
Java 面向对象编程
总之,Java 的面向对象编程为开发者提供了一种有效的编程范式,帮助他们构建出高质量、可维护的软件系统。理解和掌握面向对象的概念和原则是成为优秀 Java 开发者的重要基础。
209 63
|
6月前
|
安全 Java API
【Java字符串操作秘籍】StringBuffer与StringBuilder的终极对决!
【8月更文挑战第25天】在Java中处理字符串时,经常需要修改字符串,但由于`String`对象的不可变性,频繁修改会导致内存浪费和性能下降。为此,Java提供了`StringBuffer`和`StringBuilder`两个类来操作可变字符串序列。`StringBuffer`是线程安全的,适用于多线程环境,但性能略低;`StringBuilder`非线程安全,但在单线程环境中性能更优。两者基本用法相似,通过`append`等方法构建和修改字符串。
86 1
|
3月前
|
存储 安全 Java
Java零基础-字符串详解
【10月更文挑战第18天】Java零基础教学篇,手把手实践教学!
123 60
|
3月前
|
Java 数据库
java小工具util系列1:日期和字符串转换工具
java小工具util系列1:日期和字符串转换工具
73 26
|
3月前
|
存储 缓存 安全
java 中操作字符串都有哪些类,它们之间有什么区别
Java中操作字符串的类主要有String、StringBuilder和StringBuffer。String是不可变的,每次操作都会生成新对象;StringBuilder和StringBuffer都是可变的,但StringBuilder是非线程安全的,而StringBuffer是线程安全的,因此性能略低。
93 8
|
3月前
|
缓存 算法 Java
本文聚焦于Java内存管理与调优,介绍Java内存模型、内存泄漏检测与预防、高效字符串拼接、数据结构优化及垃圾回收机制
在现代软件开发中,性能优化至关重要。本文聚焦于Java内存管理与调优,介绍Java内存模型、内存泄漏检测与预防、高效字符串拼接、数据结构优化及垃圾回收机制。通过调整垃圾回收器参数、优化堆大小与布局、使用对象池和缓存技术,开发者可显著提升应用性能和稳定性。
66 6