我试图水平显示不同大小的矩阵。 我正在使用BlueJ终端窗口输出。 如果左侧的矩阵具有比后面的行更多的行,则打印矩阵可以工作,但是当行数较少时,后面的矩阵不对齐。下面的图片。
一个明显的解决方案可能是摆脱第二个矩阵之前的一个空间(在第一个矩阵结束之后),但这会产生以下结果:
用于在第二个矩阵的行之前产生间距的代码:
System.out.printf("%"+Integer.toString((width*numElements) + (numElements+4)) + "s", " ");
其中width
等于矩阵中最大值的长度,numElements
等于矩阵每行中的元素数。
如何正确对齐这些矩阵?
提前谢谢!
答案 0 :(得分:2)
某些等宽字体在java中的某些情况下会错误地显示空格。至少对于我正在使用的程序(BlueJ),应该垂直对齐的文本稍微偏离。事实证明,这个"一点点"正好是常规空格字符的5/6。因此,为了抵消程序产生的错位,只需在未对齐的行之前添加一个5/6空格字符。要在java中实现5/6空格字符,请使用以下代码:
String five_sixth_space = String.valueOf((char)8194)+String.valueOf((char)8198)+String.valueOf((char)8198);
答案 1 :(得分:0)
如果将System.out.println();
放在打印语句之前,则它应该可以在BlueJ中使用。