I have a string and when I try to run the replaceAll
method, I am getting this strange error:
String str = \"something { } , op\";
str = str.r
A {
is a regex meta-character used for range repetitions as {min,max}
. To match a literal {
you need to escape it by preceding it with a \\
:
str = str.replaceAll("\\{", "\n"); // does work
If you really intend to replace single characters and not regexes (which is what you seem to want to do here), you should use .replace()
, not .replaceAll()
. In spite of its name, .replace()
will replace ALL occurrences, not just the first one.
And in case you wonder, String
implements CharSequence
, so .replace("{", "\n")
will work.
Escape it:
str = str.replaceAll("\\{", "\n");
This is needed since the first argument to replaceAll() is a regular expression, and {
has a special meaning in Java regular expressions (it's a repetition operator, hence the error message).