在 Java 中,String replaceAll() 方法 会搜索指定的字符串或正则表达式模式,并返回一个新的字符串,其中匹配的字符已被替换。
示例 1
class Geeks
{
public static void main(String args[])
{
String str = new String("Welcome to platform");
// 使用 replaceAll 将正则匹配的内容
// 替换为 replace_str
System.out.print( "替换后的结果 : ");
System.out.println(str.replaceAll("(.*)platform(.*)", "NEW_STR"));
}
}
输出结果
替换后的结果 : NEW_STR
这个方法会替换字符串中每一个子串,只要这些子串符合给定的正则表达式,就会将其替换为指定的替换字符串。
语法
> public String replaceAll(String regex, String replace_str)
参数:
- regex: 用于匹配此字符串的正则表达式。
- replace_str: 用于替换匹配表达式的字符串。
返回值: 该方法返回替换后的结果字符串。
示例 2
当我们在 INLINECODEfd54a2af 方法中传入无效的正则表达式时,会引发 INLINECODEf902c6ab 异常。
import java.io.*;
class Geeks {
public static void main(String[] args) {
String str = "Example";
// 错误的正则表达式
String regex = "\\";
// 在 replaceAll 方法中
// 传入错误的表达式
str = str.replaceAll(regex, " ");
System.out.println(str);
}
}
输出结果
Exception in thread "main" java.util.regex.PatternSyntaxException: Unexpected internal error near index 1
at java.base/java.util.regex.Pattern.error(Pattern.java:2027)
at java.base/java.util.regex.Pattern.compile(Pattern.java:1788)
at java.base/java.util.regex.Pattern.(Pattern.java:1428)
at java.base/java.util.regex.Pattern.compile(Pattern.java:1068)
at java.base/java.lang.String.replaceAll(String.java:2126)
at Example.main(Example.java:11)
示例 3
INLINECODEcc99592a 方法不接受 null 作为正则表达式,否则会引发 INLINECODE2a5a7f86 异常。
import java.io.*;
class Geeks {
public static void main(String[] args) {
// 输入字符串
String str = "Example";
// NULL 正则表达式
String regex = null;
// 在 replaceAll 方法中
// 传入 null 表达式
str = str.replaceAll(regex, " ");
System.out.println(str);
}
}
输出结果
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 Example.main(Example.java:11)