char ch1=‘\u000f’;//可以char ch2=‘\u000d’;//报错char ch3=‘\u000a’;//报错其实按理而言char类型的范围用Unicode来表示是从‘\u0000’——‘\uFFFF’,倒是其中‘\u000a’和‘\u000d’就是不行。所以,请大神指教为啥就是代表回车换行的这两个不行?
1 回答
onemoo
TA贡献883条经验 获得超454个赞
这正是对 Java 初学者来说不太直观的一个知识点:Java 代码中的 unicode 转义字符会被首先处理(即使在注释中亦如此),解释后的字符才被当作代码开始编译。
\u000a 是“换行(LF)”,在代码中这里真的就被先行替换为一个“换行”
\u000d 是“回车(CR)",同样,这里被替换为“回车”了
所以这三句代码在编译时其实是这样的:
char ch1 = '\u000f'; char ch2 = ' '; char ch3 = ' ';
这样自然就报错了
如果你只是想用这两个字符的话,应该把 \u000a 替换为 \n;把 \u000d 替换为 \r
添加回答
举报
0/150
提交
取消