我正在嘗試將一個字符串導出到一個帶有條件的文本文件,該條件是該字符串在其中包含 \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
提交
取消