Java Ragged Array,试图显示多个Arrays

时间:2017-12-04 04:16:51

标签: java arrays

我无法找到我的代码有什么问题,一切都很好,直到我到达Jagg​​ed数组。我希望它将代码显示为锯齿状数组,但我不知道

package ajk;

public class Test2 
{

public static void main(String[] args)
    int[][] twoD = {
            {1, 2},
            {3, 4, 5},
            {6},
            {7, 8, 9},
    };
    printArray(twoD); 
}
public static void printArray(int[][] arr) {
System.out.println("[");

int r = 4;
int c = 3;
int i, j;

for (i=0; i < r; i++ );
    System.out.print("["); 
    for (j=0; j < c; j++ ) {
        System.out.print( arr[i][j]  + " " );
    }
}
}                       

3 个答案:

答案 0 :(得分:1)

您有一些语法错误和错误:

  • for (i=0; i < r; i++ );你不能像这样使用for循环。您必须在大括号中编写代码

  • 您的阵列的列大小彼此不同,因此您无法使用一个变量确定列大小。对于这种情况,最好的方法是array[i].length

  • 您可以在for循环的parantez中定义i和j。

如果您更改以下代码:它将运行

public class Test2
{

    public static void main(String[] args) {

    int[][] twoD = {
            {1, 2},
            {3, 4, 5},
            {6},
            {7, 8, 9},
    };
    printArray(twoD);
}
    public static void printArray(int[][] arr) {
        System.out.println("[");

        for (int i=0; i < arr.length; i++ ) {
            System.out.print("[");
            for (int j=0; j < arr[i].length; j++ ) {
                System.out.print( arr[i][j]  + " " );
            }
        }

    }
}

答案 1 :(得分:0)

您在代码中犯了一些错误

1.总是将for循环的代码放在花括号中,如for(){}

2.您通过使数组索引超出界限而犯了一般错误,您应该使用array[i].length来确保列大小彼此不同

3.您的代码应该如下所示,请更改并尝试下面的代码

 public class Test2    
 {

public static void main(String[] args){
int[][] twoD = {
        {1, 2},
        {3, 4, 5},
        {6},
        {7, 8, 9}
};
Test2.printArray(twoD); 
}
public static void printArray(int[][] arr) {
System.out.println("[");

int r = 4;
int c = 3;
int i, j,a=0;

for(i=0; i<r; i++ ){
System.out.print("["); 
for (j=0; j<arr[i].length; j++ ) {
    System.out.print( arr[i][j]  + " " );

}
System.out.println("]");
 }
 }
}

我还添加了另一个方括号以便更好地理解

答案 2 :(得分:0)

它&#39;实际上非常简单。 Arrays类有一些静态方法来打印自己的元素(int,double,Objects等)。因为这里是二维数组,所以在循环中你会遍历arr的每个元素(这是一个int数组),并调用这个方法。 Arrays.toString(someArr)将someArr表示为String。

for (int row = 0; row < arr.length; row++) {
    int[] arr1D = arr[row];
    System.out.println(Arrays.toString(arr1D));
}