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

Java中如何用字符串列表批量格式化含多个%s的字符串?

嘿,这个场景我太熟悉了——当参数列表越长,一个个写list.get(0)、list.get(1)不仅麻烦,还容易写错索引!这里有个超简洁的解决办法,完全不用手动提取每个参数:

核心思路:利用String.format的可变参数特性

String.format的第二个参数是Object... args(可变参数),而可变参数本质上就是数组。所以我们只需要把列表转换成数组,直接传给String.format就可以了!

示例代码

List<String> list = new ArrayList<>();
list.add("A");
list.add("B");
list.add("C"); // 哪怕再加更多元素也不用改代码
String toFormat = "First value: %s, Second: %s, Third: %s";

// 关键一步:把List转成Object数组传入
String result = String.format(toFormat, list.toArray());

额外提醒

  • 一定要保证待格式化字符串里的%s占位符数量和列表元素数量完全匹配,不然会抛出MissingFormatArgumentException异常哦。
  • 如果你的列表里不是String类型(比如Integer、Double)也没关系,String.format会自动调用每个元素的toString()方法来处理。
  • 要是你想更明确地指定数组类型(比如String数组),也可以用list.toArray(new String[0]),效果和list.toArray()是一样的。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.09 08:07:43