Java中的轉義字符

特殊轉義序列(Special escape sequences)

Error:(13, 0) ajc: Invalid escape sequence (valid ones are \b \t \n \f \r \" \' \\ )
轉義序列例如(\b, \t, \n, \f, \r, \”, \’ and \).對Java而言一共只有7個
其中"'"雙引號對其中的單引號也有轉義作用。
由於歷史原因(祖師爺C的影響),大多數編程語言,都兼容這幾種轉義字符

需要注意的是轉義字符是字符而不是字符串

Unicode轉義字符

例如(e.g. \u000a)

需要注意Unicode轉義字符u0022對應的字符爲"而不是\"

理解這個謎題的關鍵是要知道:Java對在字符串字面常量中的Unicode轉義字符沒有提供任何特殊處理。編譯器在將程序解析成各種符號之前,先將Unicode轉義字符轉換成爲它們所表示的字符[JLS 3.2]

八進制轉義字符

3位長度
例如(e.g.\012)

Java中使用正則表達式中的轉義字符

需要使用\\表示正則中的轉義字符\
需要使用\\\\表示正則中的普通字符(raw character )或稱爲字面值(String iterals)\\

其他編程語言如Python中支持稱爲(字面值)的語法(e.g. r"\n"中的\n表示的是字符\以及字符n而不是轉義字符\n)

爲什麼需要轉義字符

這裏的轉義是以字面義爲參考的。所以轉義字符實際意義與字面義不符。(啥叫字面義? \u00ff 的字面義爲字符\,u,0,0,f,f)。

參考資料:

Google Java Style

發佈了59 篇原創文章 · 獲贊 2 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章