2010-03-09 101 views
14

我正在閱讀Java中的源文件,但是當我打印它(sysout)時,轉義字符不再轉義。如何在Java中的字符串中轉義字符\n\t如何在Java中轉義字符串?

+0

你可以發佈你目前的代碼閱讀和輸出? – helios 2010-03-09 01:54:46

+0

你如何閱讀源文件?你究竟如何印刷它們?從你的描述來看,轉義序列被轉換成它們所代表的轉義字符並不明顯。 – 2010-03-09 01:55:58

回答

17

您應該從著名的Apache共享使用StringEscapeUtils庫。您會發現Apache Commons中還有很多其他產品可以用於您在Java開發中遇到的其他問題,這樣您就不會重蹈覆轍。

你想要的具體調用與「Java轉義」有關; API調用是StringEscapeUtils.escapeJava()。該庫中還有很多其他轉義工具。

4

使用:由反斜槓(\)之前

\\n\\t

某些字符形成轉義序列和具有特殊含義的編譯器。所以在你的情況下,\n\t被視爲特殊(分別換行和標籤)。所以我們需要避開反斜槓,以便從字面上理解nt

+0

我正在閱讀的文件包含'\ n',我想以編程方式將其轉換爲'\\ n' – Marius 2010-03-09 02:07:35

5

鑑於String s

s = s.replace("\\", "\\\\"); 

替換所有\\\

+3

這是錯誤的,因爲\ n被視爲一個字符,因此\不會被替換爲\ \\ – 2014-12-11 12:43:50