黑马程序员技术交流社区

标题: 关于char的使用问题 [打印本页]

作者: 吴刚    时间: 2012-11-9 23:30
标题: 关于char的使用问题
本帖最后由 吴刚 于 2012-11-10 11:50 编辑
  1. public class Demo {

  2.         /**
  3.          * @param args
  4.          */
  5.         public static void main(String[] args)
  6.         {
  7.                 // TODO Auto-generated method stub
  8.                 System.out.println('\u0000');
  9.                 System.out.println(0 == '\u0000');
  10.         }

  11. }
复制代码
第二句打印的是true,如果0和\u0000相等的话,那单单输出\u0000的时候为什么是个口。。。谢谢大家啦。。

作者: 打工人    时间: 2012-11-9 23:37
true是第二句打印出来的
作者: 吴刚    时间: 2012-11-9 23:44
冯海霞 发表于 2012-11-9 23:37
true是第二句打印出来的

额,不好意思,大意啦。。:)
作者: 罗宝    时间: 2012-11-9 23:48
本帖最后由 罗宝 于 2012-11-9 23:58 编辑

'\u0000'代表的是null,在控制台输出的是一个空格
作者: 颜峰    时间: 2012-11-9 23:49
直接输入UNICODE码,有一些是不能识别的,说以输出的是口
至于第二句,应该是'\u0000'在跟0运算的时候被提升成了int,所以才输出true
(int)'\u0000'==0
作者: 奋斗的青春    时间: 2012-11-10 00:10
本帖最后由 吴愿涛 于 2012-11-10 00:13 编辑

\u开头的是一个Unicode码的字符,每一个'\u0000'都代表NULL,输出控制台是一个空格.其他的楼主可以查看Unicode表.

通常中文在的显示都是被转化为Unicode显示的.

Unicode可同时包含65536个字符,ASCII/ANSI只包含255个字符,实际上是Unicode的一个子集。Unicode字符通常用十六进制编码方案表示,范围在'\u0000'到'\uFFFF'之间。\u0000到\u00FF表示ASCII/ANSI字符。\u表示这是一个Unicode值.

作者: 吴刚    时间: 2012-11-10 11:50
谢谢楼上几位朋友




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2