Java String.replaceAll()和\n换行符

Java String.replaceAll()和\n换行符,java,string,replaceall,Java,String,Replaceall,我试着用一个小例子来解释我的问题。 我实现了版本1和版本2,但没有得到预期的结果。我必须使用哪个替换参数才能使用该方法获得所需的结果 第1版: String s = "TEST"; s = s.replaceAll("TEST", "TEST\nTEST"); System.out.println(s); 输出: TEST\nTEST 试验 试验 第2版: String s = "TEST"; s = s.rep

我试着用一个小例子来解释我的问题。 我实现了版本1和版本2,但没有得到预期的结果。我必须使用哪个替换参数才能使用该方法获得所需的结果

第1版:

String s = "TEST";
s = s.replaceAll("TEST", "TEST\nTEST");
System.out.println(s);
输出:

TEST\nTEST
试验

试验

第2版:

String s = "TEST";
s = s.replaceAll("TEST", "TEST\\nTEST");
System.out.println(s);
输出:

TEST\nTEST
测验

期望输出:

测试\n测试

从:

请注意,替换中的反斜杠\和美元符号$ 字符串可能会导致结果与正在使用的结果不同 视为文字替换字符串;看见使用 打压 如果需要,这些字符的含义

s=s.replaceAllTEST,Matcher.quoterReplacementTest\\n测试; 您仍然需要2个反斜杠,因为\是字符串文本的元字符

您也可以在不使用Matcher.quoteReplacement的情况下使用4个反斜杠:

您希望在输出中有一个\吗 您需要使用\对其进行转义,因为\是替换字符串的元字符:\\ 您需要使用\来转义这两个字符,因为\是字符串文本的元字符:\\\\ s=s.replaceAllTEST,TEST\\\\n测试; 不要全部使用替换

replaceAll执行正则表达式搜索和替换,但您的任务不需要正则表达式-只需使用纯文本版本替换,也会替换所有出现的情况

您需要一个文本反斜杠,它在Java字符串文本中编码为两个反斜杠:

String s = "TEST";
s = s.replace("TEST", "TEST\\nTEST");
System.out.println(s);
输出:

TEST\nTEST