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

如何在Java中使用String.format打印List全部元素并拼接为完整句子

问题原因

你现有代码的问题是循环内每次都对result变量做全量覆盖赋值,上一轮的计算结果会被直接清空替换,循环结束后result只会保留最后一次的赋值内容,也就是列表的最后一个元素c。

解决方案

方案1:Java 8及以上版本(最简写法)

直接使用JDK自带的String.join方法,指定分隔符批量拼接列表所有元素,再和前缀语句组合即可,无需手动写循环:

public static void main(String[] args) {
    ArrayList<String> strings = new ArrayList<>();
    strings.add("a");
    strings.add("b");
    strings.add("c");
    // 用逗号+空格作为分隔符拼接所有列表元素
    String joinedContent = String.join(", ", strings);
    // 如果需要和你注释里的预期一致末尾加句号,可改为 "This list contains: %s."
    String result = String.format("This list contains: %s", joinedContent);
    System.out.println(result);
}

运行后输出为This list contains: a, b, c,完全符合需求。

方案2:兼容Java 8以下低版本写法

如果使用的JDK版本低于8,可通过StringBuilder手动遍历拼接元素,避免每次赋值覆盖:

public static void main(String[] args) {
    ArrayList<String> strings = new ArrayList<>();
    strings.add("a");
    strings.add("b");
    strings.add("c");
    StringBuilder contentBuilder = new StringBuilder();
    for (int i = 0; i < strings.size(); i++) {
        contentBuilder.append(strings.get(i));
        // 非最后一个元素追加逗号分隔符
        if (i != strings.size() - 1) {
            contentBuilder.append(", ");
        }
    }
    String result = "This list contains: " + contentBuilder;
    System.out.println(result);
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 02:06:00