当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Java String replaceAll()用法及代码示例


Java中的String ReplaceAll方法搜索指定的字符串或指定的值,或者具有相同建议的正则表达式,返回具有相关字符的新字符串。让我们在这篇文章中了解一下Java的replaceAll字符串方法。

Java 字符串 replaceAll()

此方法将与给定正则表达式匹配的字符串的每个子字符串替换为给定的 replace_str。

Java 替换所有字符串的语法

public String replaceAll(String regex, String replace_str)

参数

  • regex:该字符串要匹配的正则表达式。
  • replace_str:将替换找到的表达式的字符串。

返回值

  • 该方法返回结果字符串。

Java 中String.replaceAll 方法的示例

Java


// Java code to demonstrate the
// working of replaceAll()
public class rep2 {
    public static void main(String args[])
    {
        // Initialising String
        String Str = new String("Welcome to geeksforgeeks");
        // original string
        System.out.print("Original String : ");
        System.out.println(Str);
        // Using replaceAll to replace regex with
        // replace_str
        System.out.print(
            "After replacing regex with replace_str : ");
        System.out.println(
            Str.replaceAll("(.*)geeks(.*)", "ASTHA TYAGI"));
    }
}
输出
Original String : Welcome to geeksforgeeks
After replacing regex with replace_str : ASTHA TYAGI

String.replaceAll Java 的异常

虽然 String ReplaceAll 方法在 Java 中非常有效,但即使它也会出现某些异常,如下所述:

1. 无效的正则表达式

在 raplaceAll() 方法中传递无效的正则表达式时,会引发 PatternSyntaxException。

例子:

Java


// Java Program to demonstrate
// replaceAll() method
import java.io.*;
// Driver class
class GFG {
    // main function
    public static void main(String[] args)
    {
        // input string
        String str = "GFG";
        System.out.println(str);
        // NULL Regular expression
        String regex = "\\";
        // Passing null expression in
        // replaceAll method
        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.<init>(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 GFG.main(GFG.java:11)

2. 空正则表达式

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

例子:

Java


// Java Program to demonstrate
// replaceAll() method
import java.io.*;
// Driver class
class GFG {
    // main function
    public static void main(String[] args)
    {
        // input string
        String str = "GFG";
        System.out.println(str);
        // NULL Regular expression
        String regex = null;
        // Passing null expression in
        // replaceAll method
        str = str.replaceAll(regex, " ");
        System.out.println(str);
    }
}

输出

Exception in thread "main" java.lang.NullPointerException
    at java.base/java.util.regex.Pattern.<init>(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 GFG.main(GFG.java:11)


相关用法


注:本文由纯净天空筛选整理自佚名大神的英文原创作品 Java String replaceAll() Method。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。