问题

这个问题在这里已有答案:

  • 如何在不获取"SomeType @ 2f92e0f4"的情况下打印Java对象? 9个答案

我正在尝试使用thetoString(int[])方法,但我认为我做错了:
http://docs.oracle.com/javase/1.5.0/docs/api/java/util/Arrays.html#toString(int[])
我的代码:

int[] array = new int[lnr.getLineNumber() + 1];
int i = 0;

System.out.println(array.toString());

输出是:

[I@23fc4bec

我也尝试过像这样打印,但是:

System.out.println(new String().toString(array));  //**error on next line**
The method toString() in the type String is not applicable for the arguments (int[])

我从更大更复杂的代码中获取了这些代码,但是如果需要我可以添加它。但这应该提供一般信息。
我正在寻找输出,就像在Oracle的文档中一样:

字符串表示由数组元素的列表组成,用方括号括起来("[]")。相邻元素由字符","(逗号后跟空格)分隔。


#1 热门回答(242 赞)

你想要的是Arrays.toString(int[])方法:

import java.util.Arrays;

int[] array = new int[lnr.getLineNumber() + 1];
int i = 0;

..      

System.out.println(Arrays.toString(array));

每种不同的原始java类型都有一个staticArrays.toStringhelper方法;这个:int[]这个:

public static String toString(int [] a)
 返回指定数组内容的字符串表示形式。字符串表示由数组元素的列表组成,用方括号括起来("[]")。相邻元素由字符","(逗号后跟空格)分隔。通过String.valueOf(int)将元素转换为字符串。如果a为null,则返回"null"。


#2 热门回答(33 赞)

System.out.println(array.toString());

应该:

System.out.println(Arrays.toString(array));

#3 热门回答(17 赞)

你可以使用java.util.Arrays

String res = Arrays.toString(array);
System.out.println(res);

输出:

[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

原文链接