【java解惑】Unicode轉義字符的使用(續)


    如下所示代碼:

public class Example016 {

	public static void main(String[] args) {
		char c = 0x000a;
		/**
		 * \u000A 註釋1
		 */
		// \u000A 註釋2

		System.out.println("c = " + c);
		System.out.println("a new line");
	}
}


    結果:

    編譯時,提示註釋2出現錯誤,導致無法正確編譯。

    

    結果分析:

    java編譯器不僅會在將程序解析成爲符號之前把Unicode轉義字符轉換成它們所表示的字符,而且它是在丟棄註釋和空格之前做這些事的。也就是說,編譯器在編譯上述代碼時,會首先將\u000A 轉化爲換行。對於註釋1來說,換行後不影響註釋;對於註釋2來說,換行後,“註釋2”這個字符就會換到下一行作爲正式代碼的一部分,這樣自然不能正確編譯。

    從《Unicode轉義字符的使用》兩篇博文中,我們可以總結到:Unicode轉義字符絕對會產生混亂。除非確實是必需的,否則就不要使用Unicode 轉義字符。它們很少是必需的。



(注:本【java解惑】系列,均是博主閱讀《java解惑》原書後,將原書上的講解和例子部分改編,然後寫成博文進行發佈的。所有例子均親自測試通過,並共享在github上。通過這些例子,激勵自己,惠及他人。同時,本系列所有博文會同步發佈在博主個人微信公衆號(搜索“愛題猿”或者“ape_it”),方便大家閱讀。如果文中有任何侵犯原作者權利的內容,請及時告知博主,以便及時刪除;如果讀者對文中的內容有異議或者問題,歡迎通過博客留言或者微信公衆號留言等方式共同探討。)

源代碼地址:https://github.com/rocwinger/java-disabuse




本文出自 “winger” 博客,謝絕轉載!

發佈了48 篇原創文章 · 獲贊 4 · 訪問量 4萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章