我正在尝试将一个字符串导出到一个带有条件的文本文件,该条件是该字符串在其中包含 \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\nworksThis\nDoes not,但实际输出是:This\nworksThisnDoesnot.在第二行中,“\”消失了。
3 回答
吃鸡游戏
TA贡献1829条经验 获得超7个赞
在使用字符序列替换时,您应该使用replace
instead of 。replaceAll
replaceAll用于替换所有出现的正则表达式。
replace用于替换所有出现的字符序列。
例子:
System.out.println(E.replace("\n","\\n"));
输出:
这\n有效
这\n没有
这些方法的名称令人困惑,所以我理解你的困惑。
万千封印
TA贡献1891条经验 获得超3个赞
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
TA贡献1785条经验 获得超8个赞
我找到了答案,应该使用 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"));
请保留此答案以备将来参考。
添加回答
举报
0/150
提交
取消