java 替换对于 \n 个字符都不起作用

2022-09-03 09:15:38

我有一个这样的字符串:现在我想用实际的新行字符替换\n,这样它就会变成John \n Barber

John

理发师

这是我的代码

replaceAll("\\n", "\n");

但它不起作用,给我相同的字符串John \n Barber


答案 1

你需要做:

replaceAll("\\\\n", "\n");

该方法在其第一个参数中需要一个正则表达式。当在java字符串中传递2时,您实际上传递了一个。问题是,在正则表达式中也是一个转义字符,所以正则表达式实际上是,所以你需要多放两次。replaceAll\\\n\\n\


答案 2

由于正则表达式中的(甚至是原始的新行字符U + 000A)被解释为新行字符,因此您需要(转义)来指定斜杠,后跟 。\n\\n\\n

这是从正则表达式引擎的角度来看的。

从编译器的角度来看,在Java文字字符串中,您需要转义,因此我们添加了另一层转义:\

String output = inputString.replaceAll("\\\\n", "\n");
//                                      \\n      U+000A