黑马程序员技术交流社区

标题: 求传道解惑数组的输出 [打印本页]

作者: 吴刚    时间: 2012-11-12 00:20
标题: 求传道解惑数组的输出
本帖最后由 吴刚 于 2012-11-12 11:55 编辑
  1. public class ArrayDemo {

  2.         /**
  3.          * @param args
  4.          */
  5.         public static void main(String[] args) {
  6.                 // TODO Auto-generated method stub
  7. //                int[] ary;
  8. //                ary = new int[]{1,2,3,4,5};
  9. //                int[] ary2 = {1, 2,3,4,5};
  10. //               
  11. //                int[] ary3 = new int[10];
  12. //                System.out.println(ary3[3]);
  13. //               
  14.                 char[] ary4 = new char[5];
  15.                 System.out.println(ary4[2]+',');
  16.                 System.out.println(ary4[2]+",");
  17.                 System.out.println(ary4[2]);
  18.         }

  19. }
复制代码
输出结果:44 口, 口
后面两个输出结果我能理解,第一个,表死凌乱了,谢谢了



作者: 王亚运    时间: 2012-11-12 02:28
  1. System.out.println((char)44);
复制代码
试试添加一句然后再次输出下。。
结果是 “,”
貌似 Java char 用的Unicode编码表
然后,你大概就知道了吧。
我只是做了下实验。
不敢确定。
如有错误,楼下指正。

再看一会,睡觉。



作者: 罗宝    时间: 2012-11-12 09:48
char[] ary4 = new char[5];
      
       //在这里ary4[2]是char类型的变量,而字符','对应的值是44,
       //ary4[2]由于没有赋初值,所以默认对应的值是0,0+44=44
       System.out.println(ary4[2]+',');

       System.out.println(ary4[2]+",");

       System.out.println(ary4[2]);
作者: 葛旭东    时间: 2012-11-12 09:49
本帖最后由 葛旭东 于 2012-11-12 09:52 编辑

char是对照ASCII码表的,一个字符对应一个值,输出字符的ASCII码值时要将它强转(char)输出,就得到对应的字符。
作者: 杨建峰    时间: 2012-11-12 11:20
  char[] ary4 = new char[5];
  System.out.println(ary4[2]+',');
  System.out.println(ary4[2]+",");
  System.out.println(ary4[2]);

代码 声明 了数组,但没有初始化,在成员方法内的局部变量
在未初始化之前使用是不规范的,会产生意想不到的结果,前
面的朋友解释说是将0的ACS2码值表示来赋值,但这种赋初值
好像是成员变量才会很明确的进行操作,所以,有没有高人解
释下,谢谢!
作者: 吴刚    时间: 2012-11-12 11:55
谢谢楼上几位。。




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