迅速学会字符串查找与替换 | 带你学《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面向对象编程文章查看此处

相关文章
|
1月前
|
Java 开发者
在Java面向对象编程的广阔海洋中,多态犹如一股深邃的潜流,它推动着代码从单一走向多元,从僵化迈向灵活。
在Java面向对象编程的广阔海洋中,多态犹如一股深邃的潜流,它推动着代码从单一走向多元,从僵化迈向灵活。
35 7
|
1月前
|
Java 开发者
那些年,我们一同踏入Java编程的大门,多态,这个充满魔法的名字,曾无数次点亮我们探索面向对象编程的热情。
那些年,我们一同踏入Java编程的大门,多态,这个充满魔法的名字,曾无数次点亮我们探索面向对象编程的热情。
41 5
|
1月前
|
安全 Java API
【Java字符串操作秘籍】StringBuffer与StringBuilder的终极对决!
【8月更文挑战第25天】在Java中处理字符串时,经常需要修改字符串,但由于`String`对象的不可变性,频繁修改会导致内存浪费和性能下降。为此,Java提供了`StringBuffer`和`StringBuilder`两个类来操作可变字符串序列。`StringBuffer`是线程安全的,适用于多线程环境,但性能略低;`StringBuilder`非线程安全,但在单线程环境中性能更优。两者基本用法相似,通过`append`等方法构建和修改字符串。
46 1
|
1月前
|
Java 程序员
Java中的继承和多态:理解面向对象编程的核心概念
【8月更文挑战第22天】在Java的世界中,继承和多态不仅仅是编程技巧,它们是构建可维护、可扩展软件架构的基石。通过本文,我们将深入探讨这两个概念,并揭示它们如何共同作用于面向对象编程(OOP)的实践之中。你将了解继承如何简化代码重用,以及多态如何为程序提供灵活性和扩展性。让我们启程,探索Java语言中这些强大特性的秘密。
|
2天前
|
存储 移动开发 Java
java核心之字符串与编码
java核心之字符串与编码
10 2
|
10天前
|
Java
Java实现:将带时区的时间字符串转换为LocalDateTime对象
通过上述方法,你可以将带时区的时间字符串准确地转换为 `LocalDateTime`对象,这对于处理不需要时区信息的日期和时间场景非常有用。
174 4
|
19天前
|
算法 Oracle Java
Java字符串拼接技术演进及阿里巴巴的贡献
本文主要讲述了Java字符串拼接技术的演进历程,以及阿里巴巴贡献的最新实现 PR 20273。
|
24天前
|
算法 Oracle Java
Java字符串拼接技术演进及阿里巴巴的贡献
本文主要讲述了Java字符串拼接技术的演进历程,以及阿里巴巴贡献的最新实现 PR 20273。
|
1月前
|
存储 Java