文
章
目
录
章
目
录
Java 中的 String.replaceAll(regex, replacement) 方法用于使用指定的正则表达式替换所有与之匹配的子字符串为替换字符串。
类似的方法 replace(substring, replacement) 用于匹配字面字符串,而 replaceAll() 用于匹配正则表达式。需要注意的是,普通字符串也被视为正则表达式模式,因此 replaceAll() 除了匹配正则表达式,也可以用于普通字符串。
1.String.replaceAll() API
replaceAll() 方法的语法如下:
String updatedString = thisString.replaceAll(regex, replacement);
这里是对这些参数的解释:
thisString
:需要搜索并替换的原字符串。regex
:使用的模式(正则表达式)。replacement
:每个匹配的子字符串都将用这个子字符串替换。updatedString
:API 的结果,即修改后的字符串。
2.使用 String.replaceAll() 示例
以下的Java程序演示了如何使用 replaceAll() API。
2.1. 替换所有单词的出现
以下Java程序将所有出现的 “java” 替换为 “scala”。
String str = "how to do in java !! a java blog !!";
Assertions.assertEquals("how to do in scala !! a scala blog !!", str.replaceAll("java", "scala"));
2.2. 移除所有空白字符
以下的Java程序将字符串中所有空白字符的出现替换为空字符串。
String blog = "how to do in java";
Assertions.assertEquals("howtodoinjava", blog.replaceAll("\\s", ""));
3.PatternSyntaxException
需要注意的是,如果正则表达式的语法无效,replaceAll() 方法会抛出 PatternSyntaxException 异常。在给定的示例中,”[” 是一个无效的正则表达式,因此我们会在运行时抛出异常。
Assertions.assertThrows(PatternSyntaxException.class, () -> {
blog.replaceAll("[", "");
});