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

相关文章
|
9天前
|
SQL JSON Java
告别字符串拼接:用Java文本块优雅处理多行字符串
告别字符串拼接:用Java文本块优雅处理多行字符串
211 108
|
3月前
|
SQL JSON Java
告别拼接噩梦:Java文本块让多行字符串更优雅
告别拼接噩梦:Java文本块让多行字符串更优雅
384 82
|
3月前
|
自然语言处理 Java Apache
在Java中将String字符串转换为算术表达式并计算
具体的实现逻辑需要填写在 `Tokenizer`和 `ExpressionParser`类中,这里只提供了大概的框架。在实际实现时 `Tokenizer`应该提供分词逻辑,把输入的字符串转换成Token序列。而 `ExpressionParser`应当通过递归下降的方式依次解析
237 14
|
7月前
|
存储 缓存 安全
Java 字符串详解
本文介绍了 Java 中的三种字符串类型:String、StringBuffer 和 StringBuilder,详细讲解了它们的区别与使用场景。String 是不可变的字符串常量,线程安全但操作效率较低;StringBuffer 是可变的字符串缓冲区,线程安全但性能稍逊;StringBuilder 同样是可变的字符串缓冲区,但非线程安全,性能更高。文章还列举了三者的常用方法,并总结了它们在不同环境下的适用情况及执行速度对比。
169 17
|
7月前
|
存储 缓存 安全
Java字符串缓冲区
字符串缓冲区是用于处理可变字符串的容器,Java中提供了`StringBuffer`和`StringBuilder`两种实现。由于`String`类不可变,当需要频繁修改字符串时,使用缓冲区更高效。`StringBuffer`是一个线程安全的容器,支持动态扩展、任意类型数据转为字符串存储,并提供多种操作方法(如`append`、`insert`、`delete`等)。通过这些方法,可以方便地对字符串进行添加、插入、删除等操作,最终将结果转换为字符串。示例代码展示了如何创建缓冲区对象并调用相关方法完成字符串操作。
144 13
|
11月前
|
SQL Java 索引
java小工具util系列2:字符串工具
java小工具util系列2:字符串工具
250 83
|
11月前
|
Java 开发者
Java 面向对象编程
总之,Java 的面向对象编程为开发者提供了一种有效的编程范式,帮助他们构建出高质量、可维护的软件系统。理解和掌握面向对象的概念和原则是成为优秀 Java 开发者的重要基础。
303 63
|
9月前
|
Java
Java 面向对象编程的三大法宝:封装、继承与多态
本文介绍了Java面向对象编程中的三大核心概念:封装、继承和多态。
466 15
|
11月前
|
存储 安全 Java
Java零基础-字符串详解
【10月更文挑战第18天】Java零基础教学篇,手把手实践教学!
175 60