Java 是否可以使用replaceAll()函数来创建在其上下文中包含\n的字符串?

Java 是否可以使用replaceAll()函数来创建在其上下文中包含\n的字符串?,java,Java,我正在尝试将字符串导出到具有条件的文本文件中,该条件是该字符串中包含\n。对于java函数replaceAll(),它不起作用 有趣的是,我知道您可以使用\\n而不是\n来逃避它,例如从头创建字符串或将字符串添加到一起。我已经在google中找到了这些信息,但我的问题是我想使用replaceAll()函数,而不是仅仅将字符串添加在一起 String a = "This"; String b = "\\n"; String c = "works"; String d = a+b+c; System

我正在尝试将字符串导出到具有条件的文本文件中,该条件是该字符串中包含\n。对于java函数replaceAll(),它不起作用

有趣的是,我知道您可以使用\\n而不是\n来逃避它,例如从头创建字符串或将字符串添加到一起。我已经在google中找到了这些信息,但我的问题是我想使用replaceAll()函数,而不是仅仅将字符串添加在一起

String a = "This";
String b = "\\n";
String c = "works";
String d = a+b+c;
System.out.println(d);
String E = "This\nDoes not";
System.out.println(E.replaceAll("\n","\\n"));
预期结果将是:

This\nworks
This\nDoes not
,, 但实际产出是:

This\nworks
ThisnDoesnot.

在第二行“\”消失了。

我找到了答案,应该用4/,而不是2。有效的代码应如下所示:

String a="This";
String b="\\n";
String c="works";
String d=a+b+c;
System.out.println(d);
String E="This\nDoes not";
System.out.println(E.replaceAll("\n","\\\\n"));

请保留此答案以备将来参考。

使用字符序列替换时,应使用
replace
而不是
replaceAll

用于替换所有引用的正则表达式

用于替换所有引用的字符序列

示例:

System.out.println(E.replace("\n","\\n")); 
输出:

System.out.println(E.replace("\n","\\n")); 
这\n行得通

这不是

这些方法的名称令人困惑,所以我理解您的困惑

String a = "This";
String b = "\\n";
String c = "works";
String d = a+b+c;
System.out.println(d);
String E = "This\nDoes not";
System.out.println(E.replace("\n","\\n"));

因为它不会忽略所有的注意事项。

是的,它是有效的,谢谢,这些方法令人困惑,我同意你的看法。