Kotlin で Java の String.format のような機能を使用する場合は、String templateを使用します。
String templateの書き方
次のようにダブルクォーテーションで括った中に、組み込みたい変数の先頭に$をつけて使用します。
1 2 3 4 5 6 7 8 |
val name = "りんご" val num = 5 val str = "$name は $num 個あります。" println( str ) // 実行結果 // りんご は 5 個あります。 |
バイトコードレベルではどのように扱われているか確認すると
val str = “$name は $num 個あります。”
この箇所は、StringBuilderが使用されていることが分かります。
NEW java/lang/StringBuilder
INVOKEVIRTUAL java/lang/StringBuilder.append
・・・
INVOKEVIRTUAL java/lang/StringBuilder.toString
INVOKEVIRTUAL java/lang/StringBuilder.append
・・・
INVOKEVIRTUAL java/lang/StringBuilder.toString
また、波括弧 { } を使用すると文字列の中で式を評価し、その結果を使用することもできます。
文字列の中で式を評価する
次のようにすると、”りんご” を “林檎” に置換した結果を使用することができます。
1 2 3 4 5 6 7 8 |
val name = "りんご" val num = 5 val str = "${name.replace("りんご","林檎")} は $num 個あります。" println(str); // 実行結果 // 林檎 は 5 個あります。 |