在我使用的程序中
line.replaceAll("(", "_");
Run Code Online (Sandbox Code Playgroud)
我有一个RuntimeException:
at java.util.regex.Pattern.error(Unknown Source)
at java.util.regex.Pattern.accept(Unknown Source)
at java.util.regex.Pattern.group0(Unknown Source)
at java.util.regex.Pattern.sequence(Unknown Source)
at java.util.regex.Pattern.expr(Unknown Source)
at java.util.regex.Pattern.compile(Unknown Source)
at java.util.regex.Pattern.<init>(Unknown Source)
at java.util.regex.Pattern.compile(Unknown Source)
at java.lang.String.replaceAll(Unknown Source)
at Processing.processEarly(Processing.java:95)
at Processing.main(Processing.java:34)
Run Code Online (Sandbox Code Playgroud)
有什么缘故吗?我们怎能避免它?
Dav*_*d M 37
第一个参数string.replaceAll是正则表达式,而不仅仅是一个字符串.左开括号是正则表达式中的特殊字符,因此您必须将其转义:
line.replaceAll("\\(", "_");
Run Code Online (Sandbox Code Playgroud)
或者,因为您要替换单个字符,string.replace所以您可以这样使用:
line.replace('(', '_');
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
21576 次 |
| 最近记录: |