Java中数组元素以toString()方法输出的问题,谁能帮帮我啊!

2025-01-18 11:46:06
推荐回答(5个)
回答1:

这个打的是内存地址了,想打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"

回答2:

java和c语言不一样,c可以直接输出数组
java输出数组这里调用toString方法,如果数组中不是数字或者字符串,返回的是字符串[类型@哈希值]
可以使用Arrays.toString()方法来输出此类数组或者把这个数组作为参数创建一个对象再来输出。

回答3:

数组是对象,底层应该没有重写object的toString方法,
public String toString() {
return getClass().getName() + "@" + Integer.toHexString(hashCode());
}

要遍历数据用java.util.Arrays工具类
Arrays.toString(array)
得到结果
[1, 2, 3, 4, 5]

回答4:

array.join

回答5:

这个是打印的是内存地址,数组就是的