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

数独网格控制台显示方法异常:仅输出上下边框,循环内容未显示

问题分析与解决:数独网格循环内容未输出

你遇到的问题其实很典型——错误使用了回车符\r导致循环内容被覆盖,最终只显示了上下分隔线。

问题根源

\r是回车控制字符,它的作用是把光标移到当前行的开头,而不是换行到下一行。所以你的内层循环每一行的内容都会被后续的输出(包括下一次循环的内容)不断覆盖,等到整个循环结束后,之前所有的行内容都被抹掉了,最终只剩下最开始和最后输出的两条分隔线。

修复方案

只需要把循环里的System.out.print("\r");替换成System.out.println();,后者会完成换行操作,让每一行的数独内容都能保留在控制台里:

public static void DisplaySudoku(){
    System.out.println("=====================================");
    for(int i = 0 ; i < 9 ; i++){
        System.out.print("|");
        for(int j = 0 ; j < 9 ; j++){
            System.out.print(" " + String.valueOf(linesArray[i][j].charAt(2)) + " |" );
        }
        // 替换\r为换行,让每一行内容都独立显示
        System.out.println();
    }
    System.out.println("=====================================");
}

额外优化建议(可选)

为了让数独的3×3区块更清晰,你可以在每3行之后添加一条分隔线,这样视觉上更符合数独的结构:

public static void DisplaySudoku(){
    System.out.println("=====================================");
    for(int i = 0 ; i < 9 ; i++){
        System.out.print("|");
        for(int j = 0 ; j < 9 ; j++){
            System.out.print(" " + String.valueOf(linesArray[i][j].charAt(2)) + " |" );
        }
        System.out.println();
        // 每3行添加分隔线,避免在最后一行之后重复添加
        if ((i + 1) % 3 == 0 && i != 8) {
            System.out.println("-------------------------------------");
        }
    }
    System.out.println("=====================================");
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.29 10:22:44