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

如何不用joinToString实现3x3x3全0三维Int列表的正确打印?

解决方法

首先你的代码存在基础问题:你创建的是9个3元素的一维列表,而非要求的3x3x3三维列表。正确的3x3x3三维列表结构是「3个二维列表,每个二维列表包含3个一维列表,每个一维列表有3个0」。

方法1:嵌套循环直接打印

不用joinToString,通过三层嵌套循环逐个输出元素,同时控制换行和分隔符:

fun main() {
    // 正确创建3x3x3三维列表
    val threeDList = List(3) { 
        List(3) { 
            List(3) { 0 } 
        } 
    }

    // 嵌套循环打印
    threeDList.forEach { twoD ->
        twoD.forEach { oneD ->
            oneD.forEachIndexed { index, num ->
                print(num)
                if (index != oneD.lastIndex) print(", ")
            }
            println()
        }
        println() // 分隔不同的二维层
    }
}

方法2:手动拼接字符串后打印

用StringBuilder把所有内容拼接成目标格式的字符串,最后一次性打印:

fun main() {
    val threeDList = List(3) { List(3) { List(3) { 0 } } }
    val sb = StringBuilder()
    
    threeDList.forEachIndexed { twoDIndex, twoD ->
        twoD.forEach { oneD ->
            sb.append(oneD.joinToString(", "))
            sb.append("\n")
        }
        // 最后一个二维层后不额外换行
        if (twoDIndex != threeDList.lastIndex) {
            sb.append("\n")
        }
    }
    
    print(sb.toString())
}

输出效果

两种方法都会输出符合预期的格式:

0, 0, 0
0, 0, 0
0, 0, 0

0, 0, 0
0, 0, 0
0, 0, 0

0, 0, 0
0, 0, 0
0, 0, 0

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 02:15:33