rke_poke
2017-05-02 14:51
采纳率: 50%
浏览 5.0k
已采纳

直接用system.out.println();输出一个数组,不是字符数组,而是乱码?如[I@14

对于一个数组,如int[] arr = new int[] { 2, 3, 67, 1, 34, 23 };
直接打印是结果是乱码System.out.println(arr);?如[I@b9e45a?
这是怎么回事

  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

3条回答 默认 最新

  • postnull 2017-05-02 15:18
    已采纳

    那是因为System.out.println这个方法,默认调用的是对象的toString()方法的内容,[表示数组,I表示int类型,b9e45a是对象名。
    这就是int[] arr对象的toString内容。
    如果要打印数组,用Arrays这个工具类:

     System.out.println(Arrays.toString(arr));
    
    已采纳该答案
    7 打赏 评论
  • mooZHENQIANGgggg 2017-05-02 15:18

    这是内存地址 不是乱码

    打赏 评论
  • 竖心旁的情 2017-05-02 15:37

    在数组中除了char型(比如说:char[] b={'f','b','c'};)的可以直接输出外,其它类型的数组输出都是内存地址(那个不是乱码)。
    如果要想输出数组里面的内容可以用循环,简单的如for循环

     int[] a={5,2,3,4,5};
            for(int i=0;i<a.length;i++){
                System.out.print(a[i]+" ");
            }
    
    打赏 评论

相关推荐 更多相似问题