# Java `String.replaceAll()`方法示例

> 原文： [https://howtodoinjava.com/java/string/java-string-replaceall-example/](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 方法语法

```java
/**
* @param regex - regular expression to match in given string
* @param replacement : replacement string to be replaced
* 
* @return result string after replacing all occurrence of 
* matching 'regex' with replacement 'substring'
*/
public String replaceAll(String regex, String replacement) 
{
	return Pattern.compile(regex).matcher(this).replaceAll(replacement);
}

```

#### 1.2 抛出`PatternSyntaxException`

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

```java
public class StringExample 
{
    public static void main(String[] args) 
    {       
        String newStr = "hello world".replaceAll("[", "");
    }
}

```

程序输出。

```java
Exception in thread "main" java.util.regex.PatternSyntaxException: Unclosed character class near index 0
[
^
	at java.util.regex.Pattern.error(Pattern.java:1955)
	at java.util.regex.Pattern.clazz(Pattern.java:2548)
	at java.util.regex.Pattern.sequence(Pattern.java:2063)
	at java.util.regex.Pattern.expr(Pattern.java:1996)
	at java.util.regex.Pattern.compile(Pattern.java:1696)
	at java.util.regex.Pattern.<init>(Pattern.java:1351)
	at java.util.regex.Pattern.compile(Pattern.java:1028)
	at java.lang.String.replaceAll(String.java:2210)
	at com.StringExample.main(StringExample.java:9)

```

## 2\. Java `String.replaceAll()`示例

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

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

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

        String newStr = str.replaceAll("java", "scala");

        System.out.println(newStr);
    }
}

```

程序输出：

```java
how to do in scala provides scala tutorials

```

## 2.2 替换所有空白

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

```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);
    }
}

```

程序输出：

```java
howtodoinjavaprovidesjavatutorials

```

参考文献：

[Java 字符串指南](https://howtodoinjava.com/java-string/)
[`String` Java 文档](https://docs.oracle.com/javase/9/docs/api/java/lang/String.html)