String pattern matching problem in Java
java, regex
Solution
The first argument to `string.replaceAll` is a regular expression, not just a string. The opening left bracket is a special character in a regex, so you must escape it:
line.replaceAll("\\(", "_");
Alternatively, since you are replacing a single character, you could use `string.replace` like so:
line.replace('(', '_');
Problem
In my program when I'm using ``` line.replaceAll("(", "_"); ``` I got a `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) ``` Is there any reason? How can we avoid it?