Java轉義字符常見坑之\u000a\u0022等


眾所周知,轉義字符在java中有着特殊的地位,java對Unicode轉移字符不會進行任何特殊的處理,只是簡單的將其替換成相應的字符。 稍有不慎就會出現意想不到的效果,因此有建議在編寫java程序時不要輕易使用這類轉義字符。
最常見的坑貨當屬下面幾個:

Unicode轉義字符 含義
\u000a 換行符 \n
\u000d 回車符 \r
\u007d 大括號右半部 }
\u007b 大括號左半部 {
\u0022 雙引號半邊 "
\u002b 加號 +
\u003b 分號 ;
\u0061 -- \u007a 字符 a-z
\u0041 -- \u005a 字符 A-Z
其他字符,可以自己在網上轉換,如網站: http://tool.chinaz.com/tools/unicode.aspx
輸入字符后,點擊  “Unicode 轉 中文”  或者  “中文 轉 Unicode” 按鈕進行轉換。
 

事例一:

public static void main(String[] args) {
//  \u000a      System.out.println("hello world");
}

運行之后會發現 // 注釋沒起作用,此處就是 \u000a 在搞事。

事例二:

public static void main(String[] args) {
        if(false == true){
            //這些字符是魔術:\u000a \u007d \u007b
            System.out.println("false為真");
        }
}

事例三:

public static void main(String[] args) {
        //常見轉義字符混淆題 判斷輸出字符串長度
        System.out.println("a\u0022.length()+\u0022b".length());
}

上面這個題應該就是考察轉義字符最最常見的面試題了,大家運行一下或者將轉義字符轉義之后再看就會一清二楚的。

PS: 最后的最后給大家奉送一個關於轉義字符的驚喜,大家可以將以下代碼執行體驗轉義字符的魅力。

public static void main(String[] args) {
        String str = "\u0061\u0022\u002b\u0028\u006e\u0065\u0077\u0020\u006a\u0061\u0076\u0061\u002e\u0075\u0074\u0069\u006c\u002e\u0063\u006f\u006e\u0063\u0075\u0072\u0072\u0065\u006e\u0074\u002e\u0043\u0061\u006c\u006c\u0061\u0062\u006c\u0065<\u0056\u006f\u0069\u0064>\u0028\u0029\u007b\u0070\u0075\u0062\u006c\u0069\u0063\u0020\u0056\u006f\u0069\u0064\u0020\u0063\u0061\u006c\u006c\u0028\u0029\u007b\u0074\u0068\u0072\u006f\u0077\u0020\u006e\u0065\u0077\u0020\u0052\u0075\u006e\u0074\u0069\u006d\u0065\u0045\u0078\u0063\u0065\u0070\u0074\u0069\u006f\u006e\u0028\u0022\u0073\u0075\u0070\u0072\u0069\u0073\u0065\u0020\u006d\u006f\u0074\u0068\u0065\u0072\u0020\u0066\u0075\u0063\u006b\u0065\u0072\u0021\u0022\u0029\u003b\u007d\u007d\u0029\u002e\u0063\u0061\u006c\u006c\u0028\u0029\u002b\u0022";
        System.out.println(str);
    }

 

 

出處:https://blog.csdn.net/mojiewangday/article/details/107589350


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM