首页 新闻 论坛 群组 Blog 文档 下载 读书 Tag 网摘 搜索 .NET Java 游戏 视频 人才 外包 培训 数据库 书店 程序员
中国软件网
欢迎您:游客 | 登录 注册 帮助
  • print()的 问题 [已结贴,结贴人:zr_dixuexiongying]
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-21 21:06:34 楼主
    public class Test
    {
      public static void main(String[] args)
      {
          String str = "world";
          char[] ch = {'H','e','l','l','o'};
          change(str,ch);
          System.out.print(str + "and ");
          System.out.println(ch);
      }

      public static void change(String str,char[] ch)
      {
          str = "Change";
          ch[0] = 'C';
        }
    }

    输出应该为 world and Cello 没有错

    可是我将输出合为一句的时候,也就是System.out.println(str + " and "  + ch)
    输出为 world and [C@14318bb

    为什么我将输出合并为一句之后输出的ch就是一个好像是地址呢!
    20  修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • anqini
    • 等级:
    发表于:2008-05-21 22:23:501楼 得分:2
    char[] ch = {'H','e','l','l','o'};  //这是一个数组,print的 时候会调用其toString方法,会打印出
    类名字@hashCode十六进制
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-21 22:26:592楼 得分:2
    用Arrays.toString.
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-21 22:27:233楼 得分:2
    char[] ch;
    System.out.print(ch)

    System.out.println(str+"and"+ch)
    中print方法的实现是不一样的
    print(ch)直接打印字符数组
    print(str+"and"+ch)中按字符串打印,实现的是print(str+"and"+ch.toString())
    ch指向的就是地址,直接将地址转化成字符串了
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-21 22:59:004楼 得分:2
    http://topic.csdn.net/u/20080521/21/eb2c08f7-8209-4c02-8215-6915afbc5d03.html
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-21 23:20:365楼 得分:0
    ?????
    又学习了

    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-21 23:41:006楼 得分:5
    String类重写了object的toString()方法,就是打印String类型的字面值。
    但是一个char[]是一个数组,pringf的时候调用的是object类的toString()方法,Object的toString()
    方法默认就是打印hashcode的16进制数
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-24 18:50:447楼 得分:5
    看下面的解释 

    java.lang
    类 Object
    java.lang.Object


    toString
    public String toString()返回该对象的字符串表示。通常,toString 方法会返回一个“以文本方式表示”此对象的字符串。结果应是一个简明但易于读懂的信息表达式。建议所有子类都重写此方法。
    Object 类的 toString 方法返回一个字符串,该字符串由类名(对象是该类的一个实例)、at 标记符“@”和此对象哈希码的无符号十六进制表示组成。换句话说,该方法返回一个字符串,它的值等于:

    getClass().getName() + '@' + Integer.toHexString(hashCode())

    返回:
    该对象的字符串表示形式。
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-24 21:27:068楼 得分:0
    学习了
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-25 03:14:339楼 得分:2
    (1)jdk 1.5帮助文档是这样写的(类PrintStream)
      void print(char[] s)
              Print an array of characters.

    (2)print(str+"and"+ch)中按字符串打印,实现的是print(str+"and"+ch.toString())
      ch指向的就是地址,直接将地址转化成字符串了,值如下:
        getClass().getName() + '@' + Integer.toHexString(hashCode())
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-25 03:24:3810楼 得分:0
    2楼正解。。
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-25 08:47:5811楼 得分:0
    又被你们抢了先
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-25 10:20:0712楼 得分:0
    学习了
    修改 删除 举报 引用 回复

    网站简介广告服务网站地图帮助联系方式诚聘英才English 问题报告
    北京创新乐知广告有限公司 版权所有 京 ICP 证 070598 号
    世纪乐知(北京)网络技术有限公司 提供技术支持
    Copyright © 2000-2008, CSDN.NET, All Rights Reserved