2013-02-12 101 views
-1

我试图写一个嵌套的循环,将打印出下面的代码的值以特定的顺序:打印有序二维数组 - 单线

public static void main(String[] args) { 

    int[][] array2d = new int[3][5]; 
    for (int i = 0; i < array2d.length; i++) { 
     for (int j = 0; j < array2d[0].length; j++) { 
      array2d[i][j] = (i * array2d[0].length) + j + 1; 
     } 
    } 

    for (int x = 0; x <= 4; x++) { 
     for (int y = 0; y <= 2; y++) { 
      System.out.println(array2d[y][x]); 
     } 
    } 
} 

}

当前的阵列以我想要的方式打印,但每个打印输出都在单独的行上。

我想要的输出(单行)是这样的:

1 6 11 2 7 12 3 8 13 4 9 14 5 10 15 

感谢您的帮助。

回答

1

您可以使用System.out.print代替:

System.out.print(array2d[y][x] + " "); 
1

更换printlnprint,它应该工作

1
String s = ""; 
for (int i = 0; i < array2d.length; i++) { 
    for (int j = 0; j < array2d[i].length; j++) { 
     s += array2d[i][j] + " "; 
    } 
} 
System.out.println(s); 
+0

for循环是相反的,所以这不会产生正确的结果。我也建议使用'StringBuilder'而不是字符串连接。 – 2013-02-12 21:47:50

0
public static void main(String[] args) { 
    int[][] array2d = new int[3][5]; 
    for (int i = 0; i < array2d.length; i++) { 
     for (int j = 0; j < array2d[0].length; j++) { 
      array2d[i][j] = (i * array2d[0].length) + j + 1; 
     } 
    } 
    StringBuilder builder = new StringBuilder(); 
    for (int x = 0; x <= 4; x++) { 
     for (int y = 0; y <= 2; y++) { 
      builder.append(array2d[y][x]); 
      if(!(x == 4 && y == 2)){ 
       builder.append(" "); 
      } 
     } 
    } 
    System.out.println(builder.toString()); 
} 

基本上,你说得对,除了改变printlnprint和格式化你想要的字符串。我改变了一点,以显示StringBuilder是如何工作的。只要有可能,我使用StringBuilder,因为它更方便。