我有一个这样的字符串:John \n Barber
现在我想用实际的换行符替换 \n 所以它会变成
John
理发师
这是我的代码
replaceAll("\\n", "\n");
但它不起作用并给我相同的字符串John \n Barber
我有一个这样的字符串:John \n Barber
现在我想用实际的换行符替换 \n 所以它会变成
John
理发师
这是我的代码
replaceAll("\\n", "\n");
但它不起作用并给我相同的字符串John \n Barber
你需要做:
replaceAll("\\\\n", "\n");
该replaceAll
方法在其第一个参数中需要一个正则表达式。在 java 字符串中传递 2\
时,您实际上传递了 1。问题是它\
也是正则表达式中的转义字符,所以正则表达式\n
实际上是\\n
,所以你需要多加\
两次。
由于\n
(或什至原始换行符 U+000A)在正则表达式中被解释为换行符,因此您需要\\n
(转义\
)以指定斜杠\
后跟n
.
这是从正则表达式引擎的角度来看的。
从编译器的角度来看,在Java字面量字符串中,需要转义\
,所以我们再增加一层转义:
String output = inputString.replaceAll("\\\\n", "\n");
// \\n U+000A
你需要转义\
字符。所以试试
replaceAll("\\\\n", "\n");
replaceAll正在使用正则表达式,您可以使用replace也将替换所有 '\n':
replace("\\\\n", "\n");