最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

java中關(guān)于轉(zhuǎn)義字符的一個(gè)bug

 更新時(shí)間:2017年02月17日 08:33:53   作者:   
本文主要介紹了java中關(guān)于轉(zhuǎn)義字符的一個(gè)bug。具有很好的參考價(jià)值,下面跟著小編一起來看下吧

在java中,你可以定義

char c = '\u4f60';
char m = '\u0045';
char e = '\u554a';

這樣的字面量,例如:

System.out.println("\u535a\u5ba2\u56ed");

這樣的代碼不管在什么編碼環(huán)境下都不會(huì)出現(xiàn)中文亂碼的問題

但是你不能定義這樣的字面量:

char c = '\u000a';
char m = '\u0027';

這是因?yàn)閈u000a和\u0027是特殊轉(zhuǎn)義字符,Java對(duì)在字符串字面常量中的Unicode轉(zhuǎn)義字符沒有提供任何特殊處理。程序會(huì)直接按照原字符轉(zhuǎn)換為它們所表示的字符[JLS 3.2]。

\u000a是一個(gè)LineFeed,即換行,這樣程序會(huì)編譯成

char c = '
';

自然是編譯錯(cuò)誤了

另一個(gè)例子是:

System.out.println("a\u0022.length()+\u0022b".length());   

對(duì)該程序的一種很膚淺的分析會(huì)認(rèn)為它應(yīng)該打印出26,稍微深入一點(diǎn)的分析會(huì)認(rèn)為該程序應(yīng)該打印16,如果你實(shí)際運(yùn)行一遍,發(fā)現(xiàn)結(jié)果既不是26也不是16,而是2.

因?yàn)椋琝u0022是雙引號(hào)的轉(zhuǎn)義字,程序最終會(huì)編譯為

String str = "a".length()+"b";
System.out.println(str.length()); 

基于此案例,我寫了一個(gè)例子,大家可以運(yùn)行嘗試一下結(jié)果

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\u0061\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);

以上就是本文的全部?jī)?nèi)容,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作能帶來一定的幫助,同時(shí)也希望多多支持腳本之家!

相關(guān)文章

最新評(píng)論

虹口区| 望城县| 金塔县| 红河县| 简阳市| 台北县| 临高县| 伊金霍洛旗| 通城县| 新化县| 莱阳市| 凌海市| 祁阳县| 阜新市| 东至县| 喀什市| 夏邑县| 临桂县| 大安市| 无为县| 梁平县| 旅游| 明光市| 潼南县| 洪洞县| 芜湖市| 四会市| 宣威市| 长垣县| 高陵县| 玉龙| 伊金霍洛旗| 兴仁县| 杭锦后旗| 苏尼特左旗| 金溪县| 万盛区| 黄平县| 宜春市| 林口县| 乌兰察布市|