在Kotlin中打印0001到1000。如何为数字添加填充?
我想打印0001(注意前面的3个0),每次递增1,达到1000停止。我怎么能在Kotlin做到这一点,而不用自己添加复杂的0 以下内容没有帮助,因为它没有0在Kotlin中打印0001到1000。如何为数字添加填充?,kotlin,Kotlin,我想打印0001(注意前面的3个0),每次递增1,达到1000停止。我怎么能在Kotlin做到这一点,而不用自己添加复杂的0 以下内容没有帮助,因为它没有0 for (i in 1..1000) print(i) 如果您对特定于JVM的方法感到满意,您可以在Java中执行您希望执行的操作: (1..1000).forEach { println("%04d".format(it)) } String.format是在StringsJVM中定义的扩展函数,它直接委托给底层的String.for
for (i in 1..1000) print(i)
如果您对特定于JVM的方法感到满意,您可以在Java中执行您希望执行的操作:
(1..1000).forEach { println("%04d".format(it)) }
String.format
是在StringsJVM
中定义的扩展函数,它直接委托给底层的String.format
,因此它不在通用标准库中。在Kotlin中,您可以使用String.format()
(与Java中相同):
在你的情况下,你可以用以下方式写下来:
(1..1000).forEach { println("%04d".format(it)) }
您可以使用:
它是Kotlin标准库的一部分,可用于所有平台。需要明确的是,
用于
-循环也很好:
for(i in 1..1000)
println("%04d".format(i))
带PadStart且无任何映射或多个循环
(0..1000).forEach { println(it.toString().padStart(4, '0')) }
使用字符串模板将在引擎盖下调用
toString()
,并使调用更短:
(0..1000).forEach { println("$it".padStart(4, '0')) }
首先映射它是不必要的。只是一个小提示,padStart是使用CharSequence扩展函数()添加前面的0,而::println是一个反射。更多信息:@MarkoTopolnik嗯,这是一个函数引用,但它在文档的反射页面下有说明。@GeertBerkers是的。。。删除了评论。这听起来确实有误导性,但我想科特林使用“反射”这个词的方式有所不同。在任何情况下,函数引用都不涉及运行时惩罚。
(0..1000).forEach { println(it.toString().padStart(4, '0')) }
(0..1000).forEach { println("$it".padStart(4, '0')) }