char ch1=‘\u000f’;//可以char ch2=‘\u000d’;//報錯char ch3=‘\u000a’;//報錯其實按理而言char類型的范圍用Unicode來表示是從‘\u0000’——‘\uFFFF’,倒是其中‘\u000a’和‘\u000d’就是不行。所以,請大神指教為啥就是代表回車換行的這兩個不行?
1 回答

onemoo
TA貢獻883條經(jīng)驗 獲得超454個贊
這正是對 Java 初學(xué)者來說不太直觀的一個知識點:Java 代碼中的 unicode 轉(zhuǎn)義字符會被首先處理(即使在注釋中亦如此),解釋后的字符才被當(dāng)作代碼開始編譯。
\u000a 是“換行(LF)”,在代碼中這里真的就被先行替換為一個“換行”
\u000d 是“回車(CR)",同樣,這里被替換為“回車”了
所以這三句代碼在編譯時其實是這樣的:
char?ch1?=?'\u000f'; char?ch2?=?' '; char?ch3?=?' ';
這樣自然就報錯了
如果你只是想用這兩個字符的話,應(yīng)該把 \u000a 替換為 \n;把 \u000d 替換為 \r
添加回答
舉報
0/150
提交
取消