You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Java打印二维矩阵时如何实现数字等间距格式化对齐

Java中JOptionPane打印二维幻方的等间距排版实现

问题背景

使用Java Swing的JOptionPane弹窗输出magic二维幻方矩阵时,若矩阵内元素数字长度不统一(例如同时包含个位数1、三位数421),采用遍历元素后拼接固定长度空格再换行的原始实现方式,会因为不同长度数字的占位差导致列间距不均,最终打印效果歪斜不规整。需要调整打印逻辑,实现所有数字统一间距的整齐排版。

存在缺陷的原始实现

原始代码固定拼接15个空格作为元素间隔,没有适配不同长度的数字,是排版错位的核心原因,代码如下:

//PRINT
String print1= " ";
for (int i=0;i<n;i++){
    for (int j=0;j<n;j++){
        print1+= magic[i][j];
        print1+="               ";
    }
    print1 += "\n";
}
JOptionPane.showMessageDialog(null,print1);

可落地的对齐方案

两种方案均通过动态匹配元素长度调整后置空格数的思路实现对齐,保证每个元素加后续空格的总占位宽度一致,最终输出规整的矩阵效果:

  • 方案1:根据数值范围判断位数
    通过数值区间判断当前数字的位数,不同位数对应拼接不同长度的后置空格,实现代码如下:
//PRINT MATRIX
String print1= "";
for (int i=0;i<n;i++){
    for (int j=0;j<n;j++){
        print1+= magic[i][j];
        if (magic[i][j]<10)
            print1+="                 ";
        else if(magic[i][j]>9&&magic[i][j]<100) 
            print1+="               ";                    
        else if(magic[i][j]>=100&&magic[i][j]<1000) 
            print1+="             ";                    
        else 
            print1+="           ";               
    }
    print1 += "\n";
}            
JOptionPane.showMessageDialog(null,magic+"\nMagic number: "+nMagic,"Magic square "+n+"x"+n+"",JOptionPane.PLAIN_MESSAGE);
  • 方案2:根据字符串长度判断位数
    调用String.valueOf()将整数元素转为字符串,直接获取字符串长度作为数字位数,再对应调整拼接的空格数量,相比数值区间判断的方式写法更简洁,对更高位数数字的适配扩展性更好,实现代码如下:
//PRINT MATRIX
String print1= "";
String slength="";
for (int i=0;i<n;i++){
    for (int j=0;j<n;j++){                  
        print1+= magic[i][j];
        slength=String.valueOf(magic[i][j]);
        if (slength.length()<2)
            print1+="                 ";
        else if(slength.length()<3) 
            print1+="               ";                    
        else if(slength.length()<4) 
            print1+="             ";                    
        else 
            print1+="           ";               
    }
    print1 += "\n";
}

内容的提问来源于stack exchange,提问作者Anibal

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.28 22:42:31