跳到主要内容

Java字符串replace()方法

replace() 方法用新的字符/文本替换字符串中每个匹配的字符/文本。

示例

class Main {
public static void main(String[] args) {
String str1 = "bat ball";

// 将 b 替换为 c
System.out.println(str1.replace('b', 'c'));

}
}

// 输出: cat call

replace() 语法

replace() 方法的语法可以是

string.replace(char oldChar, char newChar)

或者

string.replace(CharSequence oldText, CharSequence newText)

这里,stringString 类的一个对象。

replace() 参数

要替换单个字符,replace() 方法需要以下两个参数:

  • oldChar - 字符串中要被替换的字符
  • newChar - 匹配字符将被此字符替换

要替换子字符串,replace() 方法需要以下两个参数:

  • oldText - 字符串中要被替换的子字符串
  • newText - 匹配的子字符串将被此字符串替换

replace() 返回值

  • replace() 方法返回一个新字符串,在该字符串中每个匹配的字符/文本都被新的字符/文本替换。

示例 1:Java String replace() 字符

class Main {
public static void main(String[] args) {
String str1 = "abc cba";

// 所有 'a' 被替换为 'z'
System.out.println(str1.replace('a', 'z')); // zbc cbz

// 所有 'L' 被替换为 'J'
System.out.println("Lava".replace('L', 'J')); // Java

// 字符串中没有的字符
System.out.println("Hello".replace('4', 'J')); // Hello

}
}

注意: 如果要替换的字符不在字符串中,replace() 返回原始字符串。

示例 2:Java String replace() 子字符串

class Main {
public static void main(String[] args) {
String str1 = "C++ Programming";

// 所有 "C++" 被替换为 "Java"
System.out.println(str1.replace("C++", "Java")); // Java Programming

// 所有 "aa" 被替换为 "zz"
System.out.println("aa bb aa zz".replace("aa", "zz")); // zz bb zz zz

// 字符串中没有的子字符串
System.out.println("Java".replace("C++", "C")); // Java
}
}

注意: 如果要替换的子字符串不在字符串中,replace() 返回原始字符串。

需要注意的是,replace() 方法从开始到结束替换子字符串。例如,

"zzz".replace("zz", "x") // xz

上述代码的输出是 xz,而不是 zx。这是因为 replace() 方法首先将第一个 zz 替换为 x。

如果你需要基于正则表达式替换子字符串,请使用 Java String replaceAll() 方法