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

Java格式化输出实现网格列右对齐问题求助

Java实现网格数字字符串列右对齐

要实现网格元素按列右对齐,你可以使用Java的String.format()方法来格式化每个元素,自动填充空格保证固定宽度,替代原来硬编码空格的方式。

修改后的toString()方法

@Override
public String toString() {
    StringBuilder sb = new StringBuilder();
    // 遍历每一行
    for (int i = 0; i < grid.length; i++) {
        // 遍历当前行的每一列
        for (int j = 0; j < grid[i].length; j++) {
            // 格式化每个元素为3位右对齐的字符串,可根据需求调整宽度数字(比如4)
            sb.append(String.format("%3s", grid[i][j]));
            // 列之间额外加一个空格(可选,根据期望格式调整)
            if (j != grid[i].length - 1) {
                sb.append(" ");
            }
        }
        // 每一行结束后换行,最后一行无需额外换行
        if (i != grid.length - 1) {
            sb.append("\n");
        }
    }
    return sb.toString();
}

关键说明

  • 格式化规则:%3s表示将字符串格式化为3位宽度、右对齐的格式。如果元素是1位数字(比如"1"),会自动在左侧补1个空格变成" 1";如果是2位数字(比如"12"),则显示为" 12",这样就能保证每一列的元素右侧对齐。
  • 灵活调整宽度:如果需要更宽松的列间距,可以把%3s改成%4s,每个元素占4位宽度,左侧补更多空格。
  • StringBuilder优化:用StringBuilder拼接字符串比直接用+号更高效,尤其当网格规模较大时。

效果示例

假设网格元素为:

grid[0] = {"1", "12", "14", "23", "1"}
grid[1] = {"12", "1", "12", "53", "26"}

修改后的输出会是:

1  12  14  23   1
 12   1  12  53  26

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 00:50:19