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

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


有趣的是,我知道您可以使用 \\n 而不是 \n 来转义它,就像从头开始创建字符串或将字符串添加在一起一样。我已经在谷歌中找到了这个信息,但我的问题是我想使用 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.

在第二行中,“\”消失了。


catspeake
浏览 125回答 3
3回答

吃鸡游戏

在使用字符序列替换时,您应该使用replaceinstead of 。replaceAllreplaceAll用于替换所有出现的正则表达式。replace用于替换所有出现的字符序列。例子:System.out.println(E.replace("\n","\\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"));因为它不会忽略 的所有出现。

慕的地10843

我找到了答案,应该使用 4 /'s 而不是 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"));请保留此答案以备将来参考。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java