Java转义字符常见坑之\u000a\u0022

众所周知,转义字符在java中有着特殊的地位,java对Unicode转移字符不会进行任何特殊的处理,只是简单的将其替换成相应的字符。 稍有不慎就会出现意想不到的效果,因此有建议在编写java程序时不要轻易使用这类转义字符。
最常见的坑货当属下面几个:

Unicode转义字符含义
\u000a换行符 /n
\u007d大括号右半部 }
\u007b大括号左半部 {
\u0022双引号半边 "
\u002b加号 +

事例一:

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);
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值