其他
Java教程-Java String replaceAll()方法
整理:Java面试那些事儿
Java String类的replaceAll()方法用于替换所有与正则表达式和替换字符串匹配的字符序列。
语法
replaceAll()方法的语法如下所示:
public String replaceAll(String regex, String replacement)
参数
regex:正则表达式
replacement:替换的字符序列
返回值
替换后的字符串
异常抛出
PatternSyntaxException:如果正则表达式的语法无效。
内部实现
public String replaceAll(String regex, String replacement) {
return Pattern.compile(regex).matcher(this).replaceAll(replacement);
}
专属福利
Java String的replaceAll()方法示例:替换字符
让我们看一个替换所有出现的单个字符的示例。
文件名:ReplaceAllExample1.java
public class ReplaceAllExample1{
public static void main(String args[]){
String s1="javatpoint is a very good website";
String replaceString=s1.replaceAll("a","e");//将所有出现的“a”替换为“e”
System.out.println(replaceString);
}}
输出:
jevetpoint is e very good website
Java String replaceAll()方法示例:替换单词
让我们看一个替换所有出现的单个单词或一组单词的示例。
文件名:ReplaceAllExample2.java
public class ReplaceAllExample2{
public static void main(String args[]){
String s1="My name is Khan. My name is Bob. My name is Sonoo.";
String replaceString=s1.replaceAll("is","was");//将所有出现的“is”替换为“was”
System.out.println(replaceString);
}}
输出:
My name was Khan. My name was Bob. My name was Sonoo.
Java String replaceAll()方法示例:移除空格
让我们看一个移除所有出现的空格的示例。
文件名:ReplaceAllExample3.java
public class ReplaceAllExample3{
public static void main(String args[]){
String s1="My name is Khan. My name is Bob. My name is Sonoo.";
String replaceString=s1.replaceAll("\\s","");
System.out.println(replaceString);
}}
输出:
MynameisKhan.MynameisBob.MynameisSonoo.
Java String replaceAll()方法示例4
当存在不正确的正则表达式时,replaceAll()方法会抛出
PatternSyntaxException异常。请看下面的示例。
文件名:ReplaceAllExample4.java
public class ReplaceAllExample4
{
// main method
public static void main(String argvs[])
{
// input string
String str = "For learning Java, JavaTpoint is a very good site.";
System.out.println(str);
String regex = "\\"; // 正则表达式无效.
//调用 replaceAll() 方法会引发 PatternSyntaxException
str = str.replaceAll(regex, "JavaTpoint ");
System.out.println(str);
}
}
输出:
For learning Java, JavaTpoint is a very good site.
Exception in thread "main" java.util.regex.PatternSyntaxException: Unexpected internal error near index 1
\
at java.base/java.util.regex.Pattern.error(Pattern.java:2015)
at java.base/java.util.regex.Pattern.compile(Pattern.java:1784)
at java.base/java.util.regex.Pattern.(Pattern.java:1427)
at java.base/java.util.regex.Pattern.compile(Pattern.java:1068)
at java.base/java.lang.String.replaceAll(String.java:2126)
at ReplaceExample4.main(ReplaceExample4.java:12)
Java String replaceAll()方法示例5
replaceAll()方法还可以用于在字符之间插入空格。
文件名:ReplaceAllExample5.java
public class ReplaceAllExample5
{
// main method
public static void main(String argvs[])
{
// input string
String str = "JavaTpoint";
System.out.println(str);
String regex = "";
// 在输入字符串的每个字符前后添加一个空格.
str = str.replaceAll(regex, " ");
System.out.println(str);
}
}
输出:
JavaTpoint
J a v a T p o i n t
Java String replaceAll()方法示例6
replaceAll()方法甚至不接受null正则表达式,会引发NullPointerException异常。
文件名:ReplaceAllExample6.java
public class ReplaceAllExample6
{
// 主方法
public static void main(String argvs[])
{
// 输入字符串
String str = "JavaTpoint";
System.out.println(str);
String regex = null; // 正则表达式为空
str = str.replaceAll(regex, " ");
System.out.println(str);
}
}
输出:
JavaTpoint
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 ReplaceAllExample6.main(ReplaceAllExample6.java:13)
我就知道你会点赞+“在看”