在Kotlin填充字符串

我试图在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库有没有适当的方法?

2 Solutions collect form web for “在Kotlin填充字符串”

你可以使用kotlin-stdlib.padEnd(length, padChar = ' ')扩展名 。 它接受所需的length和一个可选的padChar (默认是空格):

 mutableList.forEach { println("${it.name.padEnd(45)} - ${it.value}") } 

还有padStart对齐另一个方向的填充。

你可以用String#格式的扩展函数来代替,实际上,它是以java.lang.String#格式内联到call-site函数中的,例如:

 mutableList.forEach { cp -> println("%-45s - %s".format(cp.name, cp.value)) } 
  • Kotlin投影冗余
  • Kotlin lateinit记者java
  • genericstypes参数不在范围内
  • 什么?在Kotlin做什么?
  • 引用扩展function?
  • 如何通过Gradle将编译器parameter passing给Kotlin编译器
  • 从任何地方引用项目目录
  • 未解决的参考DaggerApplicationComponent
  • Spring Boot 2.0.0.M7,Kotlin,Gradle-bean无法find
  • 你可以在Kotlin有一个通用的主要构造函数吗?
  • Kotlin数据类inheritance+复制方法
  • Kotlin language will be the best programming language for Android.