我想打印0001(注意3个前面的0),并一次打印1,然后达到1000以停止。我如何在Kotlin中做到这一点而无需自己复杂地附加0?
以下内容无济于事,因为它没有前面的0。
for (i in 1..1000) print(i)
答案 0 :(得分:15)
您可以使用padStart
:
(0..1000)
.map { it.toString().padStart(4, '0') }
.forEach(::println)
它是Kotlin标准库的一部分,可用于所有平台。
答案 1 :(得分:9)
如果您对特定于JVM的方法感到满意,则可以执行Java中的操作:
(1..1000).forEach { println("%04d".format(it)) }
String.format
是在StringsJVM
中定义的扩展函数,它直接委派给基础String.format
,因此不在通用标准库中。
答案 2 :(得分:4)
在Kotlin中,您可以使用String.format()
(与Java中相同):
"%04d".format(i)
根据您的情况,您可以通过以下方式将其记录下来:
(1..1000).forEach { println("%04d".format(it)) }
答案 3 :(得分:3)
请注意,for
循环也很好:
for(i in 1..1000)
println("%04d".format(i))
答案 4 :(得分:3)
使用PadStart且没有任何映射或多个循环,
(0..1000).forEach { println(it.toString().padStart(4, '0')) }
答案 5 :(得分:0)
使用字符串模板将在后台调用toString()
,并使调用更短:
(0..1000).forEach { println("$it".padStart(4, '0')) }
首先进行映射是不必要的努力。