我觉得这是一个容易回答的问题,但我似乎无法弄清楚出于某种原因。
for (int i = 0; i < width; i++){
for (int j = 0; j < height; j++) {
switch (c) {
case 'i':
System.out.printf("[%d]", val);
break;
case 'b':
System.out.printf("[x]");
break;
case 'w':
System.out.printf("[ ]");
break;
default:
System.out.printf("[%c]", type);
break;
}
System.out.printf("%-2s", "");
}
System.out.println();
}
这是代码。我有一个矩阵,我想像桌子一样打印出来。但是,此代码不能以一种简洁的方式执行此操作。
为System.out.printf("%-2s", "");
切换System.out.print("\t");
有效,但行之间的间距过宽。
有什么建议吗?
谢谢!
答案 0 :(得分:0)
一个简单的解决方案是执行两步格式化:
所以在你的开关栏中:
formatted = String.format("[%d]", val);
以下:
System.out.printf("%-6s", formatted);
在您的情况下,这仍然非常简单,您还可以在切换块中合并列宽:
System.out.printf("[%4d]", val); // 4 = 6 (column width) minus 2 for the brackets
// ...
System.out.printf("[x] "); // add 3 spaces to the end
// etc.