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

Java重写toString方法时ArrayList返回值带多余[]如何解决?

问题原因

你直接拼接ArrayList类型的courses字段时,会默认调用ArrayList的toString()方法,该方法的输出格式固定为[元素1, 元素2, 元素3],所以会额外携带方括号,和要求的逗号分隔无括号格式不符,导致测试用例不通过。

解决方案

Java 8及以上版本可以直接使用String.join()方法完成字符串拼接,该方法可以指定分隔符,直接将集合中的元素拼接为无额外符号的字符串,是最简单的实现方式。

修改后的toString方法代码

@Override
public String toString() {
    if (courses.isEmpty()) {
        return this.name + ": courses=NO_COURSES";
    } else {
        String courseStr = String.join(",", courses);
        return this.name + ": courses=" + courseStr;
    }
}

注:原代码中单独定义布尔变量判断集合是否为空、再和true比较的写法可以直接简化,省略不必要的中间变量,代码更简洁。

如果你使用的是Java 8以下的版本,也可以通过StringBuilder遍历拼接实现:

@Override
public String toString() {
    if (courses.isEmpty()) {
        return this.name + ": courses=NO_COURSES";
    }
    StringBuilder sb = new StringBuilder();
    for (int i = 0; i < courses.size(); i++) {
        sb.append(courses.get(i));
        if (i != courses.size() - 1) {
            sb.append(",");
        }
    }
    return this.name + ": courses=" + sb.toString();
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 13:00:04