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

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