Java 常用需要转义 / 不需要转义 方法大全
我给你整理成最清晰、最实用、面试/开发必背版本,直接区分:普通字符串方法 vs 正则方法。
一、核心结论(背会这一句就够)
- 参数是 普通字符串 → 不用转义
- 参数是 正则表达式 → 必须转义(
. * + | ( ) [ ] { } ^ $ \)
二、✅ 不需要转义的方法(普通字符串)
这些方法完全不解析正则,你传什么就是什么。
字符串包含/判断
contains(".")✅ 直接写.startsWith(".")endsWith(".")
字符串替换(单个字符)
replace('.', '-')✅ 字符版,不用转replace(".", "-")✅ 字符串版,也不用转
字符串截取/比较
indexOf(".")lastIndexOf(".")equals(".")
三、⚠️ 必须转义的方法(正则表达式)
只要用到正则,特殊字符必须加 \\ 转义!
1. 匹配判断
matches("正则")// 判断是否包含 . str.matches(".*\\..*"); // 必须 \\.
2. 分割字符串
split("正则")str.split("\\."); // 按 . 分割 str.split("\\|"); // 按 | 分割 str.split("\\+"); // 按 + 分割
3. 替换全部
replaceAll("正则", "新值")str.replaceAll("\\.", "-"); // 把 . 换成 -
4. 模式匹配(Pattern、Matcher)
Pattern.compile("\\."); // 必须转义
四、🔥 Java 正则必须转义的字符清单
这些字符在正则里有特殊含义,直接用会报错/逻辑错误:
. * + ? | ( ) [ ] { } ^ $ \
转义写法(Java 里要写 双反斜杠 \\):
\\. \\* \\+ \\? \\| \\( \\) \\[ \\] \\{ \\} \\^ \\$ \\\\
五、超级速记表(开发直接对照)
| 方法 | 类型 | 是否需要转义 . | 示例 |
|---|---|---|---|
| contains | 普通字符串 | ❌ 不用 | . |
| replace | 普通字符串 | ❌ 不用 | . |
| indexOf | 普通字符串 | ❌ 不用 | . |
| matches | 正则 | ✅ 必须 | \\. |
| split | 正则 | ✅ 必须 | \\. |
| replaceAll | 正则 | ✅ 必须 | \\. |
| Pattern.compile | 正则 | ✅ 必须 | \\. |
总结
- 普通方法:直接写
. * +等字符 - 正则方法:全部加
\\转义 - 最常用坑点:
split(".")错误 → 必须写split("\\.")