Java String replaceAll() 方法详解

在 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)
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。如需转载,请注明文章出处豆丁博客和来源网址。https://shluqu.cn/28125.html
点赞
0.00 平均评分 (0% 分数) - 0