1. ホーム
  2. string-formatting

[解決済み】Kotlinの文字列テンプレートでのフォーマット

2022-04-02 08:30:13

質問

Kotlinには、文字列テンプレートという優れた機能があります。

val i = 10 
val s = "i = $i" // evaluates to "i = 10"

しかし、テンプレートに何らかの書式を設定することは可能でしょうか?例えば、Doubleをkotlinの文字列テンプレートでフォーマットしたいのですが、せめて小数点以下の桁数を設定したいです。

val pi = 3.14159265358979323
val s = "pi = $pi??" // How to make it "pi = 3.14"?

解決方法は?

残念ながら、文字列テンプレートの書式設定はまだビルトインされていません。

"pi = ${pi.format(2)}"

その .format(n) という関数を自分で定義する必要があります。

fun Double.format(digits: Int) = "%.${digits}f".format(this)

今のところKotlinに欠けている機能の一部がここにあるのは明らかなので、それを修正することにします。