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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 新航向 中级黑马   /  2014-8-15 22:42  /  2160 人查看  /  8 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 新航向 于 2014-8-17 21:26 编辑

int[]类型数组,转换成字符串类型,打印结果为什么为地址值?
  1. class StringDemo
复制代码


08-15_11.png (77.2 KB, 下载次数: 187)

08-15_11.png

8 个回复

倒序浏览
一维数组是Object的子类,(in instanceof Object)的结果为true,String.valueOf并没有针对int[]参数的重载,因此传入的int[]将调用String.valueOf(Object obj)这个重载版本,而这个重载版本又将调用obj的toString()方法,数组类型没有重写Object的toString()方法,所以打印出地址值
回复 使用道具 举报
fantacyleo 发表于 2014-8-16 00:46
一维数组是Object的子类,(in instanceof Object)的结果为true,String.valueOf并没有针对int[]参数的重载 ...

1、那么只有char[]例外,是否因为String.valueO只有针对char[]参数的重载?
2、是否有现有函数将一个int[]数组,转换成字符串?(我想到的只有现将int[]转成char[],再通过String.valueOf(char[])转换)

08-16_1.png (116.07 KB, 下载次数: 143)

08-16_1.png
回复 使用道具 举报
  1. int[] intArray = {1,2,3,4,5};
  2.                 //可以使用Arrays工具类
  3.                 System.out.println(Arrays.toString(intArray));
  4.                 //结果:[1, 2, 3, 4, 5]
  5.                 //可以看看:http://blog.sina.com.cn/s/blog_93daad41010115yq.html
复制代码
回复 使用道具 举报
新航向 发表于 2014-8-16 07:22
1、那么只有char[]例外,是否因为String.valueO只有针对char[]参数的重载?
2、是否有现有函数将一个int[] ...

代码=两边最好有空格,给代码呼吸的空间
回复 使用道具 举报
fantacyleo 来自手机 金牌黑马 2014-8-16 11:03:12
地板
新航向 发表于 2014-8-16 07:22
1、那么只有char[]例外,是否因为String.valueO只有针对char[]参数的重载?
2、是否有现有函数将一个int[] ...

1 是的
2 Arrays.toString
回复 使用道具 举报
nadax 中级黑马 2014-8-16 11:08:26
7#
String你valueof是用OBJECT这个函数来处理的吧,你试试看下String 的长度不就知道什么情况了吗。
回复 使用道具 举报
nadax 中级黑马 2014-8-16 11:28:27
8#
                System.out.println(String.valueOf(i).indexOf(1));结果是-1 说明没有传入,valueOF是失败了。
回复 使用道具 举报
很深奥哦!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马