A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© chenwei0407 中级黑马   /  2015-5-4 01:53  /  401 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

为什么这个程序执行以后前面就打印空格?0到哪里去了呢?
结果是 , , , ,0,0,3,C,

  1. class ArrayTest
  2. {
  3.         public static void main(String[] args)
  4.         {
  5.                 toHex(60);
  6.         }

  7.         public static void toHex(int num)
  8.         {
  9.                 char[] chs = {'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};
  10.                
  11.                 char[] arr = new char[8];
  12.                 for (int x=0;x<8 ;x++ )
  13.                 {
  14.                         int temp = num & 15;
  15.                         arr[x] = chs[temp];
  16.                         num = num >>> 4;
  17.                         System.out.print(arr[7-x]+",");
  18.                 }

  19.                
  20.         }


  21. }
复制代码

2 个回复

倒序浏览
本帖最后由 飒飒 于 2015-5-4 02:52 编辑

因为 char[] arr = new char[8]定义时其中的元素都是null,循环执行的时候,当x=0时,arr[7-0]中还是null,所以打印出来空格;以此类推,到arr[3]的时候才开始有值,便打印出0.
回复 使用道具 举报
飒飒 发表于 2015-5-4 02:49
因为 char[] arr = new char[8]定义时其中的元素都是null,循环执行的时候,当x=0时,arr[7-0]中还是null, ...

受教了,谢谢!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马