java中replace()方法用于精确匹配替换,返回新字符串且原字符串不变;支持字符替换和子串替换,不解析正则,避免转义问题。

Java 中用 replace() 方法可以统一替换字符串中所有匹配的字符或子串,但要注意它只支持**精确匹配**,且返回新字符串(原字符串不可变)。
replace(char oldChar, char newChar)
用于替换单个字符。传入旧字符和新字符,会把字符串中所有该字符替换成新字符。
- 区分大小写,比如
'a'不会替换成'A' - 只能处理
char类型,不能传字符串 - 示例:
"apple".replace('p', 'b')→"abble"
replace(CharSequence target, CharSequence replacement)
从 Java 1.5 开始支持,可替换任意长度的子串(包括空字符串),比 replaceAll() 更安全——不解析正则表达式,避免转义问题。
-
target和replacement都是CharSequence,常用String - 替换所有出现位置,不是只换第一个
- 示例:
"hello world".replace("l", "x")→"hexxo worxd" - 支持空串:
"abcc".replace("c", "")→"ab"
注意:replace 不改变原字符串
String 是不可变对象,所有替换操作都返回新字符串,原字符串保持不变。
- 必须用变量接收结果:
String s2 = s1.replace("old", "new"); - 直接调用不赋值等于没做任何事:
s1.replace("a", "b");→ 原值未变
别和 replaceAll、replaceFirst 混用
replaceAll() 和 replaceFirst() 使用正则表达式,若目标含特殊字符(如 .、*、$),需额外转义;而 replace() 完全按字面量匹配,更简单直接。
- 想替换
"a.b"中的"."?用replace(".", "!")即可 - 若误用
replaceAll(".", "!"),会把每个字符都替换成"!"(因为.在正则里是通配符)
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南











