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

移除多余行分隔符:解决JUnit测试持续失败问题

解决JUnit测试中生成文本末尾多余空行的问题

你的代码在每一行结束后都会添加换行符,包括最后一行,导致生成的字符串末尾多了一个空行,这就是JUnit测试失败的核心原因。

修复方案1:修改循环逻辑,仅在非最后一行添加换行

public static String getRectangle(int maxRows, int maxCols, char symbol) {
    if (maxRows < 1 || maxCols < 1 ) {
        return null;
    }
    StringBuilder rectangle = new StringBuilder();
    for (int i = 0; i < maxRows; i++) {
        for (int j = 0; j < maxCols; j++) {
            rectangle.append(symbol);
        }
        // 仅当不是最后一行时,添加换行符
        if (i != maxRows - 1) {
            rectangle.append(System.lineSeparator());
        }
    }
    return rectangle.toString();
}

修复方案2:使用String.join简化实现(更简洁)

这种方式利用字符串连接方法自动处理分隔符,避免手动判断:

import java.util.Collections;

public static String getRectangle(int maxRows, int maxCols, char symbol) {
    if (maxRows < 1 || maxCols < 1 ) {
        return null;
    }
    // 生成单一行的字符串
    String singleRow = String.valueOf(symbol).repeat(maxCols);
    // 用换行符拼接所有行,不会在末尾添加多余换行
    return String.join(System.lineSeparator(), Collections.nCopies(maxRows, singleRow));
}

其他模块如果是类似的「循环添加分隔符导致末尾多余字符」的问题,都可以套用这个思路:只在元素之间添加分隔符,而非每个元素之后都添加。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.09 15:28:15