String类提供了3种实现字符串替换的方法,分别是:replace()、replaceFirst()和replaceAll()。
- replace()方法
replace() 方法用于将目标字符串中的指定字符(串)全部替换成新的字符(串),其语法格式为:
字符串.replace(String oldChar, String newChar)
示例:
@Test
public void test01() {
String str = "Hello World!";
str = str.replace(" ", ",");
System.out.println(str); // Hello,World!
}
@Test
public void test02() {
String str = "Hello World!";
str = str.replace('e', 'o');
System.out.println(str); // Hollo World!
}
- replaceFirst() 方法
replaceFirst() 方法用于将目标字符串中匹配正则表达式的第一个子串替换成新的字符串(即替换第一个满足条件的字符串),其语法形式如下:
字符串.replaceFirst(String regex, String replacement)
其中,regex 表示正则表达式,replacement 表示用于替换的字符串。
示例:
@Test
public void test03() {
String str = "Hello World!";
str = str.replaceFirst("o", "e");
System.out.println(str); // Helle World!
}
- replaceAll() 方法
replaceAll() 方法用于将目标字符串中匹配某正则表达式的所有子字符串替换成新的字符串,其语法形式如下:
字符串.replaceAll(String regex, String replacement)
示例:
@Test
public void test04() {
String str = "Hello World!";
str = str.replaceAll("o", "e");
System.out.println(str); // Helle Werld!
}
虽然replace和replace都能够替换所有匹配到的字符串,但是replace支持字符及字符串的替换,而replaceAll只支持正则表达式替换(对于特殊字符,如:’$’, ‘(’, ‘)’, ‘*’, ‘+’, ‘.’, ‘[’, ‘]’, ‘?’, ‘\’, ‘^’, ‘{’, ‘}’, '|'等,需要转义后才能进行替换)。
示例:
public void test05() {
String str1="test/testDemo5/(20200120).txt";
String str2="test/testDemo5/(20200120).txt";
String str3="test.txt";
String str4 = str1.replace(str2, str3); // test.txt
String str5 = str1.replaceAll(str2, str3); // test/testDemo5/(20200120).txt
String str6 = "test/testDemo5/\\(20200120\\).txt"; // 转义
String str7 = str1.replaceAll(str6, str3); // test.txt
}
参考链接:
http://c.biancheng.net/view/836.html
https://www.cnblogs.com/xmqa/p/10275810.html