I have a string like this: John \\n Barber
now I want to replace \\n with actual new line character so it will become
John
Barber<
replaceAll is using Regular Expressions, you can use replace which will also replace all '\n':
replace("\\\\n", "\n");
You need to do:
replaceAll("\\\\n", "\n");
The replaceAll
method expects a regex in its first argument. When passing 2 \
in java string you actually pass one. The problem is that \
is an escape char also in regex so the regex for \n
is actualy \\n
so you need to put an extra \
twice.
You need to escape \
character. So try
replaceAll("\\\\n", "\n");
Since \n
(or even the raw new line character U+000A) in regex is interpreted as new line character, you need \\n
(escape the \
) to specify slash \
followed by n
.
That is from the regex engine's perspective.
From the compiler's perspective, in Java literal string, you need to escape \
, so we add another layer of escaping:
String output = inputString.replaceAll("\\\\n", "\n");
// \\n U+000A