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

如何修改Java控制台矩形绘制代码以消除行尾空格?

解决控制台绘制矩形时行尾多余空格的问题

你的代码核心逻辑没问题,但行尾多余空格是因为*每个输出单元(或空白)后都附加了空格,包括每行的最后一个单元。下面提供两种简洁的修复方案:

方案一:单独处理最后一列(高效直接)

直接在内层循环中判断当前是否是最后一列,避免给最后一个输出单元添加空格:

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int rows = scanner.nextInt();
        int cols = scanner.nextInt();
        
        for (int i = 0; i < rows; i++) {
            for (int j = 0; j < cols; j++) {
                boolean isBorder = i == 0 || i == rows - 1 || j == 0 || j == cols - 1;
                if (j == cols - 1) {
                    // 最后一列,输出不带空格的内容
                    System.out.print(isBorder ? "*" : " ");
                } else {
                    // 非最后一列,正常输出带空格的内容
                    System.out.print(isBorder ? "* " : "  ");
                }
            }
            System.out.println();
        }
        scanner.close();
    }
}

方案二:用StringBuilder拼接整行后处理

先把整行内容拼接成字符串,再移除末尾的空格后输出,逻辑更直观:

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int rows = scanner.nextInt();
        int cols = scanner.nextInt();
        
        for (int i = 0; i < rows; i++) {
            StringBuilder lineBuilder = new StringBuilder();
            for (int j = 0; j < cols; j++) {
                if (i == 0 || i == rows - 1 || j == 0 || j == cols - 1) {
                    lineBuilder.append("* ");
                } else {
                    lineBuilder.append("  ");
                }
            }
            // 移除末尾的空格
            if (lineBuilder.length() > 0) {
                lineBuilder.setLength(lineBuilder.length() - 1);
            }
            System.out.println(lineBuilder);
        }
        scanner.close();
    }
}

方案对比

  • 方案一:无需额外的字符串操作,性能更优,适合处理大尺寸的矩形绘制。
  • 方案二:代码逻辑更易读,适合新手理解,对小尺寸场景来说差异可以忽略。

内容的提问来源于stack exchange,提问作者Ярослав Гавран

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.06 17:22:37