为了账号安全,请及时绑定邮箱和手机立即绑定

char类型的unicode表示问题

char类型的unicode表示问题

牧童羊 2018-06-28 20:24:59
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


查看完整回答
反对 回复 2018-06-28
  • 1 回答
  • 1 关注
  • 1991 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信