char类型的unicode表示问题

char ch1=‘\u000f’;//可以

char ch2=‘\u000d’;//报错

char ch3=‘\u000a’;//报错

其实按理而言char类型的范围用Unicode来表示是从‘\u0000’——‘\uFFFF’,倒是其中‘\u000a’和‘\u000d’就是不行。所以,请大神指教为啥就是代表回车换行的这两个不行?


牧童羊
浏览 2102回答 1
1回答

onemoo

这正是对 Java 初学者来说不太直观的一个知识点:Java 代码中的 unicode 转义字符会被首先处理(即使在注释中亦如此),解释后的字符才被当作代码开始编译。\u000a 是“换行(LF)”,在代码中这里真的就被先行替换为一个“换行”\u000d 是“回车(CR)",同样,这里被替换为“回车”了所以这三句代码在编译时其实是这样的:char ch1 = '\u000f'; char ch2 = ' '; char ch3 = ' ';这样自然就报错了如果你只是想用这两个字符的话,应该把 \u000a 替换为 \n;把 \u000d 替换为 \r
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java