在java中将一维数组输出为2维

时间:2013-11-10 17:10:54

标签: java arrays

我必须输出每行最多4个数组值的数组,但我无法弄清楚如何将其转换为2维数组。破折号是我遇到麻烦的地方。如果我不将它输出为2D数组,我怎么限制它每行只有4个值?

public class arrayExampleB{
  public static void main(String[] args){

  int[] x = {22, 12, 28, 4, 30, 59, 17, 82, 1, 99, 47, 2, 8, 20, 80};

  System.out.print("Pre-Swapped Array Set (linear): {");
     for(int i=0; i<=x.length-1; i++){
        if(i<x.length-1){
           System.out.print(x[i] + ", ");
        }
        else{System.out.print(x[i]);} 
     }
     System.out.print("}");

  int y = x.length-1;
  int temp = x[y];
  x[y] = x[1];
  x[1] = temp;

  int z = x.length-2;
  int temp2 = x[z];
  x[z] = x[0];
  x[0] = temp2;

  System.out.print("\nPost-Swapped Array Set (linear): {");
     for(int i=0; i<=x.length-1; i++){
        if(i<x.length-1){
           System.out.print(x[i] + ", ");
        }
        else{System.out.print(x[i]);} 
     }
     System.out.print("}");

// --------------------------------------------- ----------------

  int d = (x.length / 4) + (x.length % 4);
  int i = 0;
  int j = 0;
  int[][] t = new int[i][j];

  System.out.print("\nPre-Swapped Array Set (2D): {");
     for(i=0; i <= 4; i++){
        for(j=0; j < d; j++){
           System.out.print(t[i][j] + " ");
        }
        System.out.println();
     }
  System.out.print("}");

   }
}

3 个答案:

答案 0 :(得分:0)

无需仔细查看代码:要在控制台的多行上输出一维数组,请考虑以下事项:

int[] x = {22, 12, 28, 4, 30, 59, 17, 82, 1, 99, 47, 2, 8, 20, 80};

for(int i = 0; i < x.length; i++)
{
    System.out.print(x[i] + ' ');
    if( (i+1) % 4 == 0)
        System.out.print('\n');
}

答案 1 :(得分:0)

int[] x = {22, 12, 28, 4, 30, 59, 17, 82, 1, 99, 47, 2, 8, 20, 80};
int[][] t = new int[4][4];

// populate 2D
int k = 0
for(i=0; i <= t.length; i++){
    for(j=0; j < t[i].length; j++){
        t[i][j] = x[k];
        k++l
    } 
}

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

答案 2 :(得分:0)

要在一行上输出1d数组为2d且最多4个值,请使用以下代码:

for (int i = 0; i < array.length; i++) {
    System.out.print(array[i] + " ");
    if ((i+1) % 4 == 0)
        System.out.println();
}