为什么会发生这种情况,为什么不给我 * ThisIsWhatItShouldBh
代码
class ArreyTable{
public static void main(String OKM[]){
System.out.println("Index\tValue");
int px[] = {144,240,360,480,720};
for(int counter=0; counter<px.length; counter++){
System.out.println(counter + "\t" + px);
}
}
}
cmd结果
Index Value
0 [I@7852e922
1 [I@7852e922
2 [I@7852e922
3 [I@7852e922
4 [I@7852e922
ThisIsWhatItShouldBe
Index Value
0 144
1 240
2 360
3 480
4 720
答案 0 :(得分:3)
您正在打印整个数组而不是相关元素,[]
运算符可以访问该元素:
for(int counter=0; counter<px.length; counter++){
System.out.println(counter + "\t" + px[counter]);
// Here ------------------------------^
}
答案 1 :(得分:1)
在代码块中
for(int counter=0; counter<px.length; counter++){
System.out.println(counter + "\t" + px);
}
您每次都将数组px
转换为字符串,出于内部JVM原因,这是[I@7852e922
。
您必须在阵列上指明索引:
for(int counter=0; counter<px.length; counter++){
System.out.println(counter + "\t" + px[counter]);
}
这将产生预期的结果。
此外,您可以将println
替换为printf
:
for(int counter=0; counter<px.length; counter++){
System.out.printf("%2d: %3d%n", counter, px[counter]);
}
答案 2 :(得分:0)
只需更改此行: System.out.println(counter +&#34; \ t&#34; + px [counter] );
所以它会知道返回什么值;)
答案 3 :(得分:0)
您最初打印整个px数组对象。正在打印的是数组对象的toString()函数的输出。
Object.toString()方法返回一个字符串,该字符串由类的名称,@符号和十六进制对象的哈希码组成。
当你使用px [counter]时,它引用该索引处的元素值。
正确的解决方案是:
for(int counter=0; counter<px.length; counter++){
System.out.println(counter + "\t" + px[counter]);
}