java 中轉義字符

1.八進制轉義序列:\ + 1到3位5數字;範圍'\000'~'\377' 
      \0:空字符 
2.Unicode轉義字符:\u + 四個十六進制數字;0~65535 
     \u0000:空字符 
3.特殊字符:就3個 
      \":雙引號 
     \':單引號 
     \\:反斜線 
4.控制字符:5個 
  
\' 單引號字符 
\\ 反斜槓字符 
\r 回車 
\n 換行 
\f 走紙換頁 
\t 橫向跳格 
\b 退格 

點的轉義:. ==> u002E 
美元符號的轉義:$ ==> u0024 
乘方符號的轉義:^ ==> u005E 
左大括號的轉義:{ ==> u007B 
左方括號的轉義:[ ==> u005B 
左圓括號的轉義:( ==> u0028 
豎線的轉義:| ==> u007C 
右圓括號的轉義:) ==> u0029 
星號的轉義:* ==> u002A 
加號的轉義:+ ==> u002B 
問號的轉義:? ==> u003F 
反斜槓的轉義: ==> u005C

換行符在不同的系統下有不同的形式:
\n:   Mac os下的文本文件換行符   
\r:   unix下的文本文件換行符   
\r\n:   windows下的文本文件換行符

下面的程序使用了兩個Unicode的轉義字符,它們是用其十六進制代碼來表示Unicode字符。那麼,這個程序會打印什麼呢? 
Java代碼 
public class EscapeRout{   
    public static void main(String[] args){   
        // \u0022 是雙引號的Unicode轉義字符   
        System.out.println("a\u0022.length()   
+\u0022b".length());   
    }   
}  

public class EscapeRout{ 
    public static void main(String[] args){ 
        // \u0022 是雙引號的Unicode轉義字符 
        System.out.println("a\u0022.length() 
+\u0022b".length()); 
    } 


        對該程序的一般的分析會認爲它應該打印出26,因爲在由兩個雙引號"a\u0022.length()+\u0022b"標識的字符串之間總共有26個字符。 
        稍微深入一點的分析會認爲該程序應該打印16,因爲兩個Unicode轉義字符每一個在源文件中都需要用6個字符來表示,但是它們只表示字符串中 的一個字符。因此這個字符串應該比它的外表看其來要短10個字符。 如果你運行這個程序,就會發現事情遠不是這麼回事。它打印的既不是26也不是16,而是2。 
        Java對在字符串字面常量中的Unicode轉義字符沒有提供任何特殊處理。編譯器在將 程序解析成各種符號之前, 先將Unicode轉義字符轉換成爲它們所表示的字符因此,程序中的第一個Unicode轉義字符將作爲一個單字符字符串字面常量("a")的結束引號,而第二個Unicode轉義字符將作爲另一 個單字符字符串字面常量("b")的開始引號。程序打印的是表達式"a".length()+"b".length(),即2。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章