В других ответах достаточно подробно описано, как это сделать с помощью replaceAll
, и как вам необходимо при необходимости избегать обратной косой черты.
Начиная с 1.5., Существует также String.replace(CharSequence, CharSequence)
, который выполняет замену литеральной строки. Это может значительно упростить многие проблемы замены строк, потому что нет необходимости экранировать метасимволы регулярных выражений, такие как .
, *
, |
и, да, \
.
Таким образом, учитывая строку, которая может содержать подстроку "\n"
(не '\n'
), мы можем удалить их следующим образом:
String before = "Hi!\\n How are you?\\n I'm \n good!";
System.out.println(before);
// Hi!\n How are you?\n I'm
// good!
String after = before.replace("\\n", "");
System.out.println(after);
// Hi! How are you? I'm
// good!
Обратите внимание, что если вы настаиваете на использовании replaceAll
, вы можете предотвратить уродство, используя Pattern.quote
:
System.out.println(
before.replaceAll(Pattern.quote("\\n"), "")
);
// Hi! How are you? I'm
// good!
Вам также следует использовать Pattern.quote
, когда вы получаете произвольную строку, которая должна совпадать буквально, а не как шаблон регулярного выражения.