Java中数组元素以toString()方法输出的问题,谁能帮帮我啊!
publicstaticvoidmain(String[]args){int[]array={1,2,3,4,5};System.out.println(array.to...
public static void main(String[]args){
int[] array= {1,2,3,4,5};
System.out.println(array.toString());
}
//就以上这个简单的程序,结果为:[I@15db9742
请问为什么是上面这个结果?
我知道可以遍历数组元素,然后依次输出;可是我怎么记得C#中以toString()方法输出得到的结果就是12345呢?还是我记错了!
C#中也不是toString()直接就输出12345,是我记错了! 展开
int[] array= {1,2,3,4,5};
System.out.println(array.toString());
}
//就以上这个简单的程序,结果为:[I@15db9742
请问为什么是上面这个结果?
我知道可以遍历数组元素,然后依次输出;可是我怎么记得C#中以toString()方法输出得到的结果就是12345呢?还是我记错了!
C#中也不是toString()直接就输出12345,是我记错了! 展开
5个回答
展开全部
这个打的是内存地址了,想打12345,要重载toString方法的。这里可以用Arrays.toString(array)
。下面是api的解释:
toString
public String toString()
返回该对象的字符串表示。通常,toString 方法会返回一个“以文本方式表示”此对象的字符串。结果应是一个简明但易于读懂的信息表达式。建议所有子类都重写此方法。
Object 类的 toString 方法返回一个字符串,该字符串由类名(对象是该类的一个实例)、at 标记符“@”和此对象哈希码的无符号十六进制表示组成。换句话说,该方法返回一个字符串,它的值等于:
getClass().getName() + '@' + Integer.toHexString(hashCode())
返回:
该对象的字符串表示形式。
关于为什么会打印[,请看下面:
如果此类对象表示一个数组类,则名字的内部形式为:表示该数组嵌套深度的一个或多个 '[' 字符加元素类型名。元素类型名的编码如下:
Element Type
Encoding
boolean Z
byte B
char C
class or interface Lclassname;
double D
float F
int I
long J
short S
类或接口名 classname 是上面指定类的二进制名称。
示例:
String.class.getName()
returns "java.lang.String"
byte.class.getName()
returns "byte"
(new Object[3]).getClass().getName()
returns "[Ljava.lang.Object;"
(new int[3][4][5][6][7][8][9]).getClass().getName()
returns "[[[[[[[I"
。下面是api的解释:
toString
public String toString()
返回该对象的字符串表示。通常,toString 方法会返回一个“以文本方式表示”此对象的字符串。结果应是一个简明但易于读懂的信息表达式。建议所有子类都重写此方法。
Object 类的 toString 方法返回一个字符串,该字符串由类名(对象是该类的一个实例)、at 标记符“@”和此对象哈希码的无符号十六进制表示组成。换句话说,该方法返回一个字符串,它的值等于:
getClass().getName() + '@' + Integer.toHexString(hashCode())
返回:
该对象的字符串表示形式。
关于为什么会打印[,请看下面:
如果此类对象表示一个数组类,则名字的内部形式为:表示该数组嵌套深度的一个或多个 '[' 字符加元素类型名。元素类型名的编码如下:
Element Type
Encoding
boolean Z
byte B
char C
class or interface Lclassname;
double D
float F
int I
long J
short S
类或接口名 classname 是上面指定类的二进制名称。
示例:
String.class.getName()
returns "java.lang.String"
byte.class.getName()
returns "byte"
(new Object[3]).getClass().getName()
returns "[Ljava.lang.Object;"
(new int[3][4][5][6][7][8][9]).getClass().getName()
returns "[[[[[[[I"
展开全部
java和c语言不一样,c可以直接输出数组
java输出数组这里调用toString方法,如果数组中不是数字或者字符串,返回的是字符串[类型@哈希值]
可以使用Arrays.toString()方法来输出此类数组或者把这个数组作为参数创建一个对象再来输出。
java输出数组这里调用toString方法,如果数组中不是数字或者字符串,返回的是字符串[类型@哈希值]
可以使用Arrays.toString()方法来输出此类数组或者把这个数组作为参数创建一个对象再来输出。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
数组是对象,底层应该没有重写object的toString方法,
public String toString() {
return getClass().getName() + "@" + Integer.toHexString(hashCode());
}
要遍历数据用java.util.Arrays工具类
Arrays.toString(array)
得到结果
[1, 2, 3, 4, 5]
public String toString() {
return getClass().getName() + "@" + Integer.toHexString(hashCode());
}
要遍历数据用java.util.Arrays工具类
Arrays.toString(array)
得到结果
[1, 2, 3, 4, 5]
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这个是打印的是内存地址,数组就是的
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询