首页 理论教育 Java字符串替换方法

Java字符串替换方法

时间:2023-10-19 理论教育 版权反馈
【摘要】:动手写6.2.14上面示例中,“\\d”为正则表达式中0~9数字里的任意一个,“+”号表示匹配多个数字或字母,运行结果为:图6.2.14replaceAll()结合正则删除内容String类中replaceFirst()方法可以将第一个匹配正则表达式的字符串进行替换,replaceFirst()方法入参和replaceAll()方法入参一样。

Java字符串替换方法

String类中提供了几种可以替换指定字符串中特定内容的方法,替换方法也同时支持正则表达式的入参(正则表达式是一种表示一类字符串的描述,第8章将对正则表达式进行详细介绍)。

String类中提供了两个同名replace()方法,一个入参为两个单一字符:

另一个入参为两个CharSequence接口类:

CharBuffer、Segment、String、StringBuffer、StringBuilder都实现了CharSequence接口,也就是说上面的类都可以作为replace()方法的入参。

动手写6.2.11

上面示例中,无论是否找到要替换的字符串,replace()方法返回的字符串都是新创建的字符串。动手写6.2.11的运行结果为:

图6.2.11 使用replace()方法替换字符串

replace()方法是对大小写敏感的,也就是说“Abc”和“abc”并不相同。如果大小写书写不一致,代码就不能正确地替换所要替换的内容。同时,replace()方法也不支持正则表达式。

动手写6.2.12

上面示例中,“[a-zA-Z]+”为匹配多个英文字母的正则表达式,运行结果为:

图6.2.12 replace()方法是对大小写敏感的、不支持正则表达式

String类提供了replaceAll()方法,可以替换指定String对象中所有匹配入参正则表达式的子字符串,该方法定义如下:

replaceAll()方法会从字符串首位开始进行搜索,直到尾部,将整个字符串搜索完毕。执行结束后,指定String对象中所有匹配到的目标字符、字符串或正则表达式(本书第8章将详细介绍正则表达式及其在Java语言中的应用)都会被替代。replaceAll()方法中第一个入参为正则表达式,如“\\s”表示空格,“ \\d. ”表示多个数字。replaceAll()方法可以将指定String对象中满足正则表达式的部分替换成新的字符串。(www.xing528.com)

动手写6.2.13

其运行结果为:

图6.2.13 使用replaceAll()方法替换字符串

replaceAll()方法也可以配合正则表达式将指定String对象中不想要的信息批量删除。

动手写6.2.14

上面示例中,“\\d”为正则表达式中0~9数字里的任意一个,“+”号表示匹配多个数字或字母,运行结果为:

图6.2.14 replaceAll()结合正则删除内容

String类中replaceFirst()方法可以将第一个匹配正则表达式的字符串进行替换,replaceFirst()方法入参和replaceAll()方法入参一样。

动手写6.2.15

上面示例中,仅会将第一次出现的字母组合abc删除(将字符串替换为空字符串""即可认为是删除内容),后面两个abc组合并不会被删除,这正是replaceFirst()方法承诺的结果。动手写6.2.15的运行结果为:

图6.2.15 replaceFirst()替换匹配正则表达式的第一个字符串

如果要去除字符串中所有的空格,可以使用正则表达式“\\s+”。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈