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

如何在Kotlin中从对象列表构造特定格式的字符串?

Kotlin 简洁实现 Box 列表转指定格式字符串

问题说明

我们定义了如下数据类:

data class Box(
    val id: Long,
    val colors: List<String>,
)

同时拥有一个 val boxes: List<Box> 对象列表,需要将其转换为每行格式为 id: 颜色1; 颜色2; ... 的字符串,示例输出如下:

1: red; light blue
2: white
3: dark green; yellow; pink

你当前的实现混用了Kotlin集合与Java Stream API,写法不够简洁,且代码存在笔误(it.values 应为 it.colors):

return boxes.map {
    "${it.id} : ${it.values.stream().collect(Collectors.joining("; "))}"
}.stream().collect(Collectors.joining("\n"))

优化后的简洁写法

直接使用Kotlin标准库的原生扩展函数,无需依赖Java Stream,代码更简洁地道:

boxes.joinToString("\n") { "${it.id}: ${it.colors.joinToString("; ")}" }

方案优势

  • joinToString 是Kotlin集合的原生扩展,一步完成元素拼接,省去了不必要的流转换操作;
  • 内层通过 colors.joinToString("; ") 直接将颜色列表按指定分隔符拼接,逻辑清晰直观;
  • 整体代码完全贴合Kotlin的简洁风格,性能也优于混写Java流的实现。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.03 08:59:56