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

如何按指定顺序打印二维数组并将奇数替换为星号

问题解决说明

根因分析

  • 你当前的printArrayEven方法在每个元素输出后都调用了System.out.println()触发换行,自然所有内容会垂直排列。
  • 符合预期的printArray方法是遍历完一整行的所有元素后,才执行一次换行操作,两个方法的换行逻辑不一致才导致输出格式不同。

修改方案

调整printArrayEven的换行逻辑,和printArray保持一致:

  1. 内层循环遍历单个行内元素时,仅输出内容不换行,奇数替换为* 和原有数字输出格式对齐
  2. 内层循环走完一整行所有元素后,再执行一次换行
    修改后的printArrayEven代码如下:
private static void printArrayEven(int[][] theArray) {
    for (int i = 0; i < theArray.length; i++) {
        // 内层循环遍历当前行的所有元素
        for (int j = 0; j < theArray[i].length; j++) {
            if ((theArray[i][j]) % 2 == 0) {
                // 偶数直接输出,不换行
                display(theArray[i][j]);
            } else {
                // 奇数替换为星号输出,和display的输出格式统一加空格,不换行
                System.out.print("* ");
            }
        }
        // 整行遍历完成后再换行
        System.out.println();
    }
}

输出效果验证

修改后输出格式和printArray完全一致,示例输出如下:

1 2 3 
4 5 6 
7 8 9 
______________________________
* 2 * 
4 * 6 
* 8 * 

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 03:27:03