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

Java循环打印数组生成对齐表格的问题求助

Java 循环生成对齐表格解决方案

问题根源

直接使用\t制表符对齐会因为内容长度不一致导致错位——制表符是跳转到固定间隔的制表位,而非根据内容动态补空格。要实现稳定对齐,需用固定宽度的格式化输出。

修改后的代码

case 2:
    // 表头:用printf格式化,指定每列宽度和对齐方式
    System.out.printf("%-15s %-12s %-25s %-15s %-25s%n", 
        "Stock Name", "Stock Symbol", "Previous Closing Price", "Current Price", "Change Percent");
    
    for (int i = 0; i < 3; i++) {
        // 修正:每行计算对应股票的变化百分比(原代码传整个数组逻辑错误)
        double changePercent = GetChangePercent(CurrentPrice[i], PreviousClosingPrice[i]);
        
        // 格式化每行内容,左对齐+固定宽度补空格
        System.out.printf("%-15s %-12s %-25.2f %-15.2f %-25f%n", 
            stockNameList[i], 
            stockSymbol[i], 
            PreviousClosingPrice[i], 
            CurrentPrice[i], 
            changePercent);
    }
    break; // 补充case语句的break(原代码缺失)

格式化规则说明

  • %-15s:左对齐(-表示左对齐,默认右对齐),占用15个字符宽度的字符串,内容长度不足时用空格补全
  • %-25.2f:左对齐,占用25个字符宽度的浮点数,保留2位小数(若需更多小数位数,可修改.2为.8等)
  • %n:跨平台换行符,替代\n保证在不同系统下输出一致

额外提示

原代码中GetChangePercent(CurrentPrice, PreviousClosingPrice)存在逻辑问题——传入整个数组会导致所有行的变化百分比相同,应改为传入当前循环对应的单个元素CurrentPrice[i]和PreviousClosingPrice[i]。

内容的提问来源于stack exchange,提问作者PP-M_

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 10:25:24