在Kotlin中打印0001至1000。如何在数字上添加填充?

时间:2018-06-29 08:01:08

标签: kotlin

我想打印0001(注意3个前面的0),并一次打印1,然后达到1000以停止。我如何在Kotlin中做到这一点而无需自己复杂地附加0?

以下内容无济于事,因为它没有前面的0。

for (i in 1..1000) print(i)

6 个答案:

答案 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')) }

首先进行映射是不必要的努力。