我最近开始在Java中使用多维整型数组。在此之前,一维数组已经足够。
要打印这些数组,我使用了System.out.println(Arrays.toString(myarray));
但是它不能用于多维数组,它只会像直接打印一维数组一样,重复多次。
您需要遍历它。
最简单的方法是使用提供的Arrays.deepToString()
,该方法在数组中搜索子数组。请注意,它与Arrays.toString()一样,仅适用于Java 1.5+,但我相信您现在已经在使用Java 5了。
例如:
int[][] myArray = { { 1, 2, 3 }, { 4, 5, 6 } };
System.out.println(Arrays.deepToString(myArray));
或者,您可以自己迭代,这也允许您以所选择的打印样式进行更多自定义。
例如:
int[][] myArray = { { 1, 2, 3 }, { 4, 5, 6 } };
for(int[] arr : myArray)
System.out.println(Arrays.toString(arr));
Arrays.deepToString
,因为对于大多数情况来说,它可能更可取。 - yshavit尝试类似这样的内容:
int number[][] = { {1, 2, 3}, {1}, {2}};
for (int i = 0; i < number.length; i++)
System.out.println(Arrays.toString(number[i]));
尝试使用Commons Lang 3的ArrayUtils toString方法:
@Test
public void multiArrayToString(){
int[] a = {1,2,3};
int[] b = {4,5,6};
int[][] c = {a, b};
String aCommonsLangToString = ArrayUtils.toString(a);
String bCommonsLangToString = ArrayUtils.toString(b);
String cCommonsLangToString = ArrayUtils.toString(c);
System.out.println(aCommonsLangToString);
System.out.println(bCommonsLangToString);
System.out.println(cCommonsLangToString);
}
输出:
{1,2,3}
{4,5,6}
{{1,2,3},{4,5,6}}
[[1, 2, 3], [4, 5, 6]]
。 - antonycc你可以像这样轻松地遍历数组:
if (yourArray != null) {
// Where object type means the type of your array.
for (ObjectType subArray : yourArray) {
// If this method can't receive nulls, then validate that subArray isn't null
System.out.println(Arrays.toString(subArray));
}
}
Arrays.toString()
。 - jmjArrays.deepToString()
更好。 - Paul Boddington