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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 欧德林 中级黑马   /  2012-4-9 10:31  /  2996 人查看  /  10 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文



今天碰到一个问题呢 。我要打印一数组组 char [] arr ={"a","c","d","e"} //要这样的结果 [a,c,d,e]
我就直接来 System.out.println(arr);发现结果不对,她输出了一个地址。


可能是因为我是零基础吧,对于很多知识都很陌生。要多少时间复习一次哦?
学了半个月了,一半还没看完。学了后面忘记前面,这怎么搞?

评分

参与人数 1技术分 +1 收起 理由
贠(yun)靖 + 1 加油哦~~!

查看全部评分

10 个回复

倒序浏览
本帖最后由 欧阳才志 于 2012-4-9 10:51 编辑

记住:打印数组要用for语句先遍历数组,然后一个个按照脚标打印
可以这样写一个方法
public static void printArr(char [] ch)
{
  for(int i=0;i<ch.length.i++)
     {
         System.out.print(ch);
     }
}
如果是二维数组的话,还要双层嵌套。
你现在直接打印数组名称,肯定打印的是地址啊,因为这个数组在栈空间里存放的就只有一个地址,只有要用的时候才到堆里一个个取出来。
回复 使用道具 举报
慢慢来呗,我是又不会的了先记着。或者上论坛问下。回去复习的话等问题积累多了,再找一天时间回头好好的复习。
回复 使用道具 举报
你直接用System.out.println(arr) ;肯定就是一个地址啊,因为你打印的是arr在堆内存中的首地址,你必须用for循环来遍历打印,楼上的哥们说的就是正解,加油吧,我也是零基础啊,基础差,才学了几个月,不过只要肯努力我相信应该没问题的,相信直接吧
回复 使用道具 举报
我也是零基础开始学的,也曾经有过和楼主一样的疑惑,这里给出自己的一点小小经验:
我们想看一下程序的输出结果,一般都会用到System.out.println()这个语句,首先要明白的是,并不是任何东西丢到println()的括号中,都能顺利得到你想象的结果。这个在初学时尤其如此。
对于不同的对象,需要用不同的方式将其“打印”出来,如上面学友说的打印一个数组元素用遍历的方式。
另外你现在应该有toString()这个方法的概念了,Object 是java所有类的超类,打印输出时,一般需要用到这个。例如我们定义一个Student类,如何定义一个类呢,这个是有规则的,按照这个规则一步一步写即可。首先我们要写一个类,先写成员属性,然后写成员方法,然后还有构造方法等。
        为了得到我们想要的输出格式,还要写toString方法覆盖它默认的那个toString()。这些都要完成才算定义一个类。当然你最好多看视频,练习用自己的话复述视频中的内容、多敲代码,可以加深你对java的理解。希望这些话能帮到你...
回复 使用道具 举报
努力,一起加油!
回复 使用道具 举报
char[] arr = {'a','b','c','d','e'};
System.out.println(arr);
//对于char类型的数组,它打印的不是地址吧,这里打印的是abcde.
回复 使用道具 举报
欧阳才志 发表于 2012-4-9 10:39
记住:打印数组要用for语句先遍历数组,然后一个个按照脚标打印
可以这样写一个方法
public static void pri ...
  1. System.out.print(ch[i]);
复制代码
回复 使用道具 举报
直接打印 System.out.println(arr);
打出的 是   arr的数组class名+@+hashcode       内存里的地址      
要显示出   要逐个遍历
回复 使用道具 举报
pray 高级黑马 2014-4-26 07:23:28
10#
让人翻译成36种不同外语流传国内外世界各地的好帖
回复 使用道具 举报
晚修时多翻翻自己做的笔记,对笔记进行增删。加深理解
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马