在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中的typealias,它在这个实现中是如何被使用的?
  • 聪明的演员是不可能的,因为...是一个可变的财产,可能已经改变了这个时间
  • 为什么Kotlin编译器需要var属性的显式初始化器?
  • Kotlin,JPA和@Transient
  • 如何将字符串的某些字符与Kotlin中的HashMap 的值交换?
  • 在SpringBoot中,Firebase连接在Linux上不起作用
  • 颠倒中缀布尔结果kotlin
  • 使用gradle将“提供的”配置添加到kotlin / java库
  • 与Kotlin测试异步失败的Mockito
  • 私人可视性修改器和子包
  • 从lambdas或Kotlin返回:“返回”不允许在这里
  • Kotlin language will be the best programming language for Android.