查看原文
其他

Java教程-Java String replaceAll()方法

点击关注 👉 鸭哥聊Java 2023-09-01

整理:Java面试那些事儿


Java String类的replaceAll()方法用于替换所有与正则表达式和替换字符串匹配的字符序列。


语法


replaceAll()方法的语法如下所示:

public String replaceAll(String regex, String replacement)


参数


regex:正则表达式

replacement:替换的字符序列


返回值


替换后的字符串


异常抛出


PatternSyntaxException:如果正则表达式的语法无效。


内部实现

public String replaceAll(String regex, String replacement) { return Pattern.compile(regex).matcher(this).replaceAll(replacement); }


专属福利

👉点击领取:651页Java面试题库


Java String的replaceAll()方法示例:替换字符


让我们看一个替换所有出现的单个字符的示例。


文件名:ReplaceAllExample1.java

public class ReplaceAllExample1{ public static void main(String args[]){ String s1="javatpoint is a very good website"; String replaceString=s1.replaceAll("a","e");//将所有出现的“a”替换为“e”System.out.println(replaceString); }}

输出:

jevetpoint is e very good website


Java String replaceAll()方法示例:替换单词


让我们看一个替换所有出现的单个单词或一组单词的示例。


文件名:ReplaceAllExample2.java

public class ReplaceAllExample2{ public static void main(String args[]){ String s1="My name is Khan. My name is Bob. My name is Sonoo."; String replaceString=s1.replaceAll("is","was");//将所有出现的“is”替换为“was”System.out.println(replaceString); }}

输出:

My name was Khan. My name was Bob. My name was Sonoo.


Java String replaceAll()方法示例:移除空格


让我们看一个移除所有出现的空格的示例。


文件名:ReplaceAllExample3.java

public class ReplaceAllExample3{ public static void main(String args[]){ String s1="My name is Khan. My name is Bob. My name is Sonoo."; String replaceString=s1.replaceAll("\\s",""); System.out.println(replaceString); }}

输出:

MynameisKhan.MynameisBob.MynameisSonoo.


Java String replaceAll()方法示例4


当存在不正确的正则表达式时,replaceAll()方法会抛出

PatternSyntaxException异常。请看下面的示例。

文件名:ReplaceAllExample4.java

public class ReplaceAllExample4 { // main method public static void main(String argvs[]) { // input string String str = "For learning Java, JavaTpoint is a very good site."; System.out.println(str); String regex = "\\"; // 正则表达式无效. //调用 replaceAll() 方法会引发 PatternSyntaxExceptionstr = str.replaceAll(regex, "JavaTpoint "); System.out.println(str); } }

输出:

For learning Java, JavaTpoint is a very good site.
Exception in thread "main" java.util.regex.PatternSyntaxException: Unexpected internal error near index 1\ at java.base/java.util.regex.Pattern.error(Pattern.java:2015) at java.base/java.util.regex.Pattern.compile(Pattern.java:1784) at java.base/java.util.regex.Pattern.(Pattern.java:1427) at java.base/java.util.regex.Pattern.compile(Pattern.java:1068) at java.base/java.lang.String.replaceAll(String.java:2126) at ReplaceExample4.main(ReplaceExample4.java:12)


Java String replaceAll()方法示例5


replaceAll()方法还可以用于在字符之间插入空格。


文件名:ReplaceAllExample5.java

public class ReplaceAllExample5 { // main method public static void main(String argvs[]) { // input string String str = "JavaTpoint"; System.out.println(str); String regex = ""; // 在输入字符串的每个字符前后添加一个空格. str = str.replaceAll(regex, " "); System.out.println(str); } }

输出:

JavaTpoint J a v a T p o i n t


Java String replaceAll()方法示例6


replaceAll()方法甚至不接受null正则表达式,会引发NullPointerException异常。


文件名:ReplaceAllExample6.java

public class ReplaceAllExample6 { // 主方法public static void main(String argvs[]) { // 输入字符串 String str = "JavaTpoint"; System.out.println(str); String regex = null; // 正则表达式为空 str = str.replaceAll(regex, " "); System.out.println(str); } }

输出:

JavaTpoint
Exception in thread "main" java.lang.NullPointerException at java.base/java.util.regex.Pattern.(Pattern.java:1426) at java.base/java.util.regex.Pattern.compile(Pattern.java:1068) at java.base/java.lang.String.replaceAll(String.java:2126)
at ReplaceAllExample6.main(ReplaceAllExample6.java:13)



程序员技术交流群
扫码进群记得备注:城市+昵称+技术方向
▲长按扫描
最近技术热文
  1. 世界第三大浏览器正在消亡

  2. Java教程-Java String replace()方法

  3. 稚晖君,被百度投了!估值被曝已超独角兽

我就知道你会点赞+“在看”

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存