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

如何实现Java二维数组的指定格式垂直打印?

如何实现二维数组的垂直列反转输出

直接上修改后的代码,完全匹配你的期望输出:

public class test {
    public static void main(String[] args) {
        double nums1[][] ={{1, 2, 3}, 
                           {4, 5, 6}, 
                           {7, 8, 9}
        };

        printVert(nums1);
    }

    public static void printVert(double[][] nums) {
        // 取第一列的元素个数作为垂直输出的行数(假设所有列长度一致)
        int rowCount = nums[0].length;
        
        // 从最后一个元素倒序遍历每一行
        for (int j = rowCount - 1; j >= 0; j--) {
            // 遍历每个列,取出对应位置的元素
            for (int i = 0; i < nums.length; i++) {
                // 格式化输出:保留两位小数,固定宽度对齐
                System.out.printf("%.2f      ", nums[i][j]);
            }
            System.out.println();
        }
        
        // 打印底部的列标题
        for (int i = 0; i < nums.length; i++) {
            System.out.printf("Col %-2d     ", i + 1);
        }
    }
}

关键逻辑说明

  1. 反转遍历顺序:原方法是先遍历列(子数组)再遍历列内元素,现在反过来——先从列的最后一个元素往前遍历,再逐个提取每个列的对应元素,这样就实现了垂直倒序输出。
  2. 格式化对齐:用printf替代print,通过%.2f保证两位小数,固定宽度的格式化字符串让每一列的内容整齐对齐,避免输出混乱。
  3. 单独处理标题行:把列标题放在所有元素行的下方,单独循环打印即可。

输出结果

3.00      6.00      9.00      
2.00      5.00      8.00      
1.00      4.00      7.00      
Col 1      Col 2      Col 3     

注意事项

  • 代码默认所有列的元素个数一致,如果你的数组存在列长度不一的情况,需要添加nums[i].length > j的判断,避免数组越界。
  • 可以调整格式化字符串的宽度(比如把%.2f 改成%-10.2f),根据需求优化列间距。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 18:15:37