黑马程序员技术交流社区

标题: 关于昨天public int read(char[ ] buf)引发问题 [打印本页]

作者: 张洪慊    时间: 2013-5-1 15:24
标题: 关于昨天public int read(char[ ] buf)引发问题
本帖最后由 张洪慊 于 2013-5-1 15:43 编辑

http://bbs.itheima.com/thread-48226-1-1.html
  1. 在上面帖子中的
  2. char[] buf =new char[3];
  3. 除了第一个元素,后面打印的均是默认值,空字符,我的机器为什么会打印出a
  4. 下面讨论了下:
  5. 以前一直以为字符数组默认值为ASCII码为0的字符->ASCII码表中说的是NULL->空字符
  6. 这里的NULL和java中的NULL是两个概念,null在java中代表常量,通常用于赋值给引用.
  7. 这里我们就把它当成空字符.
复制代码
  1. 那么如果把一个空字符赋值给一个字符变量?
  2. char c='';//编译无法通过
  3. 于是找到这个:http://baike.baidu.com/view/73.htm#1_1
  4. C中用'\0'表示空字符,java中经过测试也可以(我刚知道- -)
  5. char c='\0';//可以

  6. //测试字符数组默认值
  7. char[] ch= new char[3];
  8. System.out.println(ch[1]=='\0');//true

  9. 我想输出下数组中的元素:
  10. System.out.println(ch[1]);//按理说在屏幕上应该显示空白,但是我的机器打印了a - -!!
  11. System.out.prinltn((char)0);//还是a(应该输出ASCII码为0的字符)
  12.   我在不停查找最终找到这个解释:维基百科空字符http://zh.wikipedia.org/wiki/%E7%A9%BA%E5%AD%97%E7%AC%A6

  13. 其中有一句话:这个字符原来的意思类似NOP指令,当送到列表机或终端机时,设备不需作任何的动作(不过有些设备会错误的打印或显示一个空白)。
  14. 额...就这些了,不吐不快(*^__^*)  
复制代码

作者: 一直在路上    时间: 2013-5-1 16:02
System.out.println(ch[1]=='\0');//true这句话是对的啊,但是我的环境下面打印System.out.println(ch[1]);出现的是空白啊,和楼主的结果不一样啊,不知道是环境的问题吗?
作者: 张洪慊    时间: 2013-5-1 16:06
一直在路上 发表于 2013-5-1 16:02
System.out.println(ch[1]=='\0');//true这句话是对的啊,但是我的环境下面打印System.out.println(ch[1]); ...

看下维基百科空字符
http://zh.wikipedia.org/wiki/%E7%A9%BA%E5%AD%97%E7%AC%A6
作者: 一直在路上    时间: 2013-5-1 16:07
一直在路上 发表于 2013-5-1 16:02
System.out.println(ch[1]=='\0');//true这句话是对的啊,但是我的环境下面打印System.out.println(ch[1]); ...

楼主能给点技术分吗?小弟缺分,还不到10分,我想明天申请入学考试了
作者: 张洪慊    时间: 2013-5-1 16:26
一直在路上 发表于 2013-5-1 16:07
楼主能给点技术分吗?小弟缺分,还不到10分,我想明天申请入学考试了

..............这个会有的,你只要不断在论坛回答问题,很快的
不过我建议大部分时间学习,在学习过程中遇到的问题就是
别人会遇到的.




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