2017-07-25 11 views
4

コンソール出力で適切な位置合わせを行うために、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ライブラリでこれを行うための適切な方法はありますか?あなたが代わりにString#format拡張機能を使用してすることができます

答えて

7

あなたはそのためkotlin-stdlibから.padEnd(length, padChar = ' ') extensionを使用することができます。それは(デフォルトは空白です)希望lengthとオプションpadCharを受け付けます。また、他の方向にパディングを揃えpadStartあります

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

+0

良い答え。私はあなたが提案したことを試してみました。それは魅力のように機能します。 –

4

は、実際には、例えばjava.lang.String#formatで機能サイトを呼び出すためにインライン展開されます。

mutableList.forEach { cp -> 
    println("%-45s - %s".format(cp.name, cp.value)) 
} 
+0

はい、うまくいきます。 –

+0

@ gil.fernandesまったくありません。それがあなたを助けてくれてうれしいです。 –

関連する問題