原文: https://howtodoinjava.com/java/string/java-string-replaceall-example/

Java String.replaceAll()用给定的替换替换与给定的正则表达式匹配的每个子字符串后,将返回一个字符串。

1. String.replaceAll()方法

使用String.replaceAll(String regex, String replacement)将所有出现的子字符串(匹配参数regex)替换为replacement字符串。

1.1 方法语法

  1. /**
  2. * @param regex - regular expression to match in given string
  3. * @param replacement : replacement string to be replaced
  4. *
  5. * @return result string after replacing all occurrence of
  6. * matching 'regex' with replacement 'substring'
  7. */
  8. public String replaceAll(String regex, String replacement)
  9. {
  10. return Pattern.compile(regex).matcher(this).replaceAll(replacement);
  11. }

1.2 抛出PatternSyntaxException

请注意,如果正则表达式的语法无效,则replaceAll()会引发PatternSyntaxException。 在给定的示例中,"["是无效的正则表达式。

  1. public class StringExample
  2. {
  3. public static void main(String[] args)
  4. {
  5. String newStr = "hello world".replaceAll("[", "");
  6. }
  7. }

程序输出。

  1. Exception in thread "main" java.util.regex.PatternSyntaxException: Unclosed character class near index 0
  2. [
  3. ^
  4. at java.util.regex.Pattern.error(Pattern.java:1955)
  5. at java.util.regex.Pattern.clazz(Pattern.java:2548)
  6. at java.util.regex.Pattern.sequence(Pattern.java:2063)
  7. at java.util.regex.Pattern.expr(Pattern.java:1996)
  8. at java.util.regex.Pattern.compile(Pattern.java:1696)
  9. at java.util.regex.Pattern.<init>(Pattern.java:1351)
  10. at java.util.regex.Pattern.compile(Pattern.java:1028)
  11. at java.lang.String.replaceAll(String.java:2210)
  12. at com.StringExample.main(StringExample.java:9)

2. Java String.replaceAll()示例

2.1 替换所有出现的子串或单词

Java 程序替换字符串中所有出现的单词。 在此示例中,我们将单词“java”替换为“scala”。

  1. public class StringExample
  2. {
  3. public static void main(String[] args)
  4. {
  5. String str = "how to do in java provides java tutorials";
  6. String newStr = str.replaceAll("java", "scala");
  7. System.out.println(newStr);
  8. }
  9. }

程序输出:

how to do in scala provides scala tutorials

2.2 替换所有空白

Java 程序替换字符串中所有出现的空格。

public class StringExample 
{
    public static void main(String[] args) 
    {
        String str = "how to do in java provides java tutorials";

        String newStr = str.replaceAll("\\s", "");

        System.out.println(newStr);
    }
}

程序输出:

howtodoinjavaprovidesjavatutorials

参考文献:

Java 字符串指南
String Java 文档