public class array1 {
public static void main(String args[]) {
int twod[][] = new int[4][5];
int i, j, k = 0;
for (i=0; i < 4; i++) {
for (j=0; j < 5;j++) {
twod[i][j] = k;
k++;
}
}
for (i=0; i < 4; i++) {
for (j=0; j < 5;j++) {
System.out.println(twod[i][j] + " ");
}
System.out.println();
}
}
}
谁能告诉我如何修改代码以获得矩阵格式的输出?当我编译这个程序时,输出是 0 到 19,它是垂直对齐的,而不是矩阵格式。谁能帮帮我吗?
最佳答案
当你想要打印一个值时,只需使用 print()
,而当你真正想要打印后跟换行符时,仅使用 println()
:
for (i=0; i < 4; i++) {
for (j=0; j < 5; j++) {
if (j > 0) System.out.print(" ");
System.out.print(twod[i][j]);
}
// now that a complete row has been printed, go to the next line
System.out.println();
}
请注意,这个答案可能仍然会给您留下一个看起来有些破烂的矩阵,因为并非数据集中的所有数字都具有相同的宽度。我们需要做更多的工作才能将所有内容放入格式良好的列中。
这是使用 String.format
对上述内容进行的一项改进,固定字段宽度为 5:
for (i=0; i < 4; i++) {
for (j=0; j < 5; j++) {
if (j > 0) System.out.print(" ");
System.out.print(String.format("%5s" , String.valueOf(twod[i][j])));
}
System.out.println();
}
这会生成:
0 1 2 3 4
5 6 7 8 9
10 11 12 13 14
15 16 17 18 19
关于java - 如何以矩阵格式排列输出?#java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54852883/