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

Kotlin使用joinToString拼接非空值异常:返回错误结果求助

问题原因与解决方法

你写的代码错误使用了joinToString的参数:

  • joinToString的lambda参数是用来转换列表中的每个元素,而不是指定分隔符。你把分隔符" • "写在了转换lambda里,导致每个非空元素都被转换成了" • ",再加上默认的分隔符是逗号,最终就得到了「•, •」这样的结果。

正确写法

直接将分隔符作为joinToString的separator参数传入,不需要额外的转换lambda(如果元素本身不需要格式转换的话):

val formattedDesc = listOfNotNull(boardingZone, accessPoint, duration, description).joinToString(separator = " • ")

如果需要对元素做额外格式处理,再保留转换lambda,比如:

val formattedDesc = listOfNotNull(boardingZone, accessPoint, duration, description)
    .joinToString(separator = " • ") { it.uppercase() } // 示例:将每个元素转为大写

这样就能得到你预期的「120 • A3 • 30 minutes • Ticket」格式的字符串,空值会被listOfNotNull自动过滤。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 02:20:30