我试图在Kotlin中填充一个字符串,以便在控制台输出上实现一些正确的对齐。这些方面的东西:
accountsLoopQuery - "$.contactPoints.contactPoints[?(@.contactAccount.id)]"
brokerPassword - *****
brokerURI - tcp://localhost:61616
brokerUsername - admin
contactPointPriorityProperties - "contactPointPriority.properties"
customerCollection - "customer"
customerHistoryCollection - "customer_history"
defaultSystemOwner - "TUIGROUP"
我最终以这种方式编码 - 用Java的String.format作弊:
mutableList.forEach { cp ->
println(String.format("%-45s - %s", cp.name, cp.value))
}
使用Kotlin库有没有正确的方法?
答案 0 :(得分:11)
您可以使用kotlin-stdlib
中的.padEnd(length, padChar = ' ')
extension。它接受所需的length
和可选的padChar
(默认为空格):
mutableList.forEach {
println("${it.name.padEnd(45)} - ${it.value}")
}
还有padStart
在另一个方向上对齐填充。
答案 1 :(得分:4)
您可以改为使用String#format扩展功能,事实上,它以java.lang.String#format为内嵌功能,例如:
mutableList.forEach { cp ->
println("%-45s - %s".format(cp.name, cp.value))
}