java 转义字符"\u0010" "\010" "\2"等

java转义字符

\xxx                八进制转义符

\uxxxx          十六进制转义符

像"\010","\u0010"这种字符串,不要以为它们长度大于1,其实它们仅占一个字节,也就是由 '\010'和'\u0010'组成的单字节字符串,那么这两个字符究竟代表什么呢?它们是否是一样的?其实它们都是不可见字符,分别表示退格和数据链路转义(参考ASCII表),使用Arrays.toString(s.getBytes())可以打印一个字符串的字节数组,也就是其ASCII的十进制值,使用如下代码对转义字符的进行测试:
        System.out.println(Arrays.toString("0010".getBytes()));   //[48,48,49,48]
        System.out.println(Arrays.toString("\u0010".getBytes()));   //[16]   '\u0000'~'\uFFFF'
        //System.out.println(Arrays.toString("\u010".getBytes()));    //编译不通过,提示非法的Unicode转义
        System.out.println(Arrays.toString("\010".getBytes()));     //[8]  范围’\000′~’\377′
        System.out.println(Arrays.toString("\10".getBytes()));      //[8]   长度可为1~3位
        System.out.println("\u0002".equals("\2"));                  //true
        System.out.println(Integer.valueOf('\u0002'));              //2 (ASCII值)
        System.out.println("\101");     //A
        System.out.println('\101');     //A
        System.out.println("\u0041");   //A
        System.out.println("abcd\b\b"); //ab (\b表示退格)

 可以看到, '\u0010' 对应的十进制ASCII值为16,'\010'对应的十进制ASCII值为8,事实上十六进制的10就是16,八进制的10就是8。

posted @ 2018-11-19 21:30  codercg  阅读(8494)  评论(0编辑  收藏  举报