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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 许聪聪 中级黑马   /  2013-6-6 10:46  /  1619 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 孙百鑫 于 2013-6-22 00:38 编辑
  1. public class value0fDemo {

  2.         /**
  3.          * @param args
  4.          */
  5.         public static void main(String[] args) {
  6.                 int[] arr = {34,23,45,78,56};
  7.                 String s = String.valueOf(arr);
  8.                
  9.                 System.out.print(s);
  10.         }

  11. }
复制代码
String.valueOf()不是能把任意数据类型转换成字符串吗?怎么转换int[]数组后 打印的还是数组的地址值?
求解?

评分

参与人数 1技术分 +1 收起 理由
滔哥 + 1

查看全部评分

6 个回复

倒序浏览
建议你看下java基础加强。因为你打印的是int型号的数组。int型的数组是Object类型,而不是Object[]类型。所以打印的是地制止。如果你是Integer[]打印的就不是地址值
回复 使用道具 举报
楼主看看我的代码的注释,希望能解决楼主的问题.纯手巧,希望能仔细观看.并给一点意见
  1. public class Test1 {

  2.         /**
  3.          * @description 解释说明楼主的问题
  4.          * @param args
  5.          */
  6.         public static void main(String[] args) {
  7.                 int[] arr = {22,33,4,555,6,77};
  8.                 char[] arr1 = {'2','3','0','5','6','7'};
  9.                 String s = String.valueOf(arr);
  10.                 String s1 = String.valueOf(arr1);
  11.                
  12.                 /*解释:,下面的这句输出的是一个字符串类型的地址值
  13.                  * 因为String.valueOf并没有重载的String.valueOf(int[] arr)
  14.                  * 而此处用的是String.valueOf(Object obj)的重载形式
  15.                  * 所以传递的时候,会传递arr的地址值传递给s
  16.                  * 而这个s就在常量池中创建了一个地址值,s就指向了这个常量中的地址值
  17.                  */
  18.                 System.out.println(s);//输出的是[I@37748ba4
  19.                
  20.                 /*解释:下面的这句话输出的是字符串,因为String.valueOf()的重载形式有一个valueOf(char[] data)
  21.                  * 所以会将字符型数组转换成字符串.因此,输出的是字符类型
  22.                  */
  23.                 System.out.println(s1);//输出的是字符串数组
  24.                
  25.                 /*
  26.                  *经过验证 s是否是String类型,得出s确实为字符串类型,字符串的内容是字符串类型"地址值"
  27.                  */
  28.                 if (s instanceof String) {
  29.                         System.out.println("如果输出此句,那么s为一个字符串");
  30.                         System.out.println(s.toString());
  31.                 }
  32.         }
  33.         /**
  34.          * 最后说明一下,String.valueOf()的重载形式
  35.          * valueOf(boolean b)
  36.          * valueOf(char c)
  37.          * valueOf(char[] data)
  38.          * valueOf(char[] data, int offset, int count)
  39.          * valueOf(double d)
  40.          * valueOf(float f)
  41.          * valueOf(int i)
  42.          * valueOf(long l)
  43.          * valueOf(Object obj)
  44.          */
  45. }
复制代码

评分

参与人数 1技术分 +1 收起 理由
Sword + 1

查看全部评分

回复 使用道具 举报
希望楼主去看看API,API中有详解哦.
回复 使用道具 举报
本帖最后由 孙宁洋 于 2013-6-6 12:59 编辑


还是多查查api吧

M$LY9MRM]R40E)RKR~OGQ%F.jpg (76.76 KB, 下载次数: 0)

M$LY9MRM]R40E)RKR~OGQ%F.jpg

评分

参与人数 1技术分 +1 收起 理由
Sword + 1

查看全部评分

回复 使用道具 举报
自学就得常查API文档,那样才能了解更多,有自己的东西了。
回复 使用道具 举报
楼主您好~帖子长时间未作出回答,我已经将您的帖子改成已解决。如果有问题的话可以私密我哦~
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马