[问题] 印出整齐格式

楼主: dharma (達)   2015-05-27 02:26:34
像下面程式码打印出来的样子
0和9没有真的对齐
(PTT上看起来有对齐,但Eclipse上没有)
-9 -9 0 0
0 0 0 -9
0 -9 0 -9
-9 -9 0 0
printf要怎么改才能漂亮对齐
就仿佛0的前面有看不见的加号那样
thank
程式码:
class Data {
public void wall() {
int[][] grid = new int[][] {
{ -9, 0, 0, -9 },
{ -9, 0, -9, -9 },
{ 0, 0, 0, 0 }, { 0, -9, -9, 0 },
{ -9, 0, -9, 0 },
{ -9, 0, 0, 0 }, { 0, 0, -9, 0 } };
for (int j = 0; j < 4; j++) {
for (int i = 0; i < 4; i++) {
System.out.printf("%2d" + " ",
grid[i][j]);
}
System.out.print("\n");
}
}
}
public class Wall {
public static void main(String[] args) {
// TODO Auto-generated method stub
Data data = new Data();
data.wall();
}
}
作者: alchin7748 (R.Chin)   2015-05-27 02:40:00
%2d改成 %3d or %4d试试看 后面的空白字串可以删除
作者: pttworld (批踢踢世界)   2015-05-27 02:46:00
原po测试成功后会回来版上说明楼上方法正确吗?
作者: alchin7748 (R.Chin)   2015-05-27 03:15:00
欸? 其实你的程式码没什么问题 贴一下截图上来看看??http://i.imgur.com/u9B5FeE.jpg
作者: pttworld (批踢踢世界)   2015-05-27 03:17:00
所以这是原po的作业吗?顺便请问alchin7748对于%2d之中的2要改3的原因是?
作者: Killercat (杀人猫™)   2015-05-27 03:21:00
我这边看也是没问题 是不是因为你终端机字型的关系?要选等宽字型才会对齐,看看你默认的字型是不是
作者: pttworld (批踢踢世界)   2015-05-27 03:26:00
原po知道从Eclipse的console复制未对齐结果贴上来文章?
作者: alchin7748 (R.Chin)   2015-05-27 03:32:00
自己习惯这样的输出写法是不加空白字串的 如果写%2d的话负数会跟前面整数黏在一起 %3d对于此题刚好会多空一格 若矩阵内有二位数 我就会写成%4d了 不吝指教
作者: pttworld (批踢踢世界)   2015-05-27 03:34:00
无聊的,同一字型,如0前面有+号,对不齐的可能?我应该是不问为什么是+不是*这样的定义问题。宁愿相信 + 对 -,0 对 9,同一字型很难对不齐。一般要诡辩要凹的话,技术上就会说+是仿佛看见的。@alchin7748,所以改数字是你的习惯。数字代表宽度。
作者: ctrlbreak   2015-05-27 08:17:00
作法应该是先找出最大的数值所占的空间(长度)后,再依每个数值长短分别补上该有的空间.想要漂亮不是一个printf可以办到的
作者: pttworld (批踢踢世界)   2015-05-27 09:21:00
就文章内容我相信原po是新手
作者: swpoker (swpoker)   2015-05-27 09:48:00
没有"看起来"对齐这回事,常常都要回答user眼见不为凭
作者: Kenqr (function(){})()   2015-05-27 11:55:00
要用等宽字型才会对齐
作者: pttworld (批踢踢世界)   2015-05-27 14:19:00
如原po真为新手懂得调字型却不知可能是调了字型产生问题来这问,我只好认为是有另一老手帮他调的,但就不再继续帮这新手的这问题
作者: dreamnook (亚龙)   2015-05-27 23:47:00
你这应该不是等宽字型 而比较像新细明体XD把字体切换成"细明体"试试看
作者: andyluong200 (尼亚)   2015-05-31 23:22:00
全角半角?

Links booklink

Contact Us: admin [ a t ] ucptt.com