馬とテニスのIT革命
馬とテニスとリラックマが好きな IT 系のエンジニアです。
Kotlin

【Kotlin入門】文字列の中に変数を埋め込む文字テンプレート

「Kotlinの2種類の変数と型宣言の基本パターンについて」の記事では、主に「Hello, world!」をサンプルとして使いました。

あわせて読みたい
【Kotlin入門】2種類の変数と型宣言の基本パターンKotlin のコメントの書き方の説明をした際に、チラっと変数を使ったサンプルソース(最後のソース)も書いてみました。 https...

その際、String 型の変数に「Hello, world!」の文字列を代入するだけでした。

今回はその String 変数を活用して、文字列に変数を埋め込む方法を紹介します。

一部の文字列を動的にする

「Hello, world!」固定では面白くないので、「world」の部分を好きな文字列に置き換えやすくしてみます。

name と msg の変数は中身を入れ替えたいので var で宣言しています。

ちょっと回りくどい書き方になっていますがご了承ください。

fun main(args: Array) {
    
    var name: String = "world"
    var msg: String = "Hello, ${name}!"
    println(msg)
    
    name = "Taro"
    msg = "Hello, ${name}!"
    println(msg)

    name = "Hanako"
    msg = "Hello, ${name}!"
    println(msg)
}

結果は以下の通りです。

Hello, world!
Hello, Taro!
Hello, Hanako!

文字テンプレート

上記サンプルでは、急に「${name}」が登場したのでビックリしたかもしれませんが、この定義で name という変数を文字列の中に埋め込むことが可能となっています。

場合によっては {} をなくして $name と定義できるケースもありますが、前後の文字列の関係に依存するので {} で括っておきましょう。

シェルスクリプトを知っている方にはお馴染みの書き方ですね。

この方法を Kotlin では文字テンプレート(String Template)と呼ぶようです。

計算式も書ける文字テンプレート

実はこの文字テンプレート、{} の中には計算式のようなロジックを書くこともできます。

num という Int 型の変数を用意してインクリメントさせてみましょう。

fun main(args: Array) {
    
    var name: String = "world"
    var num: Int = 1
    var msg: String = "Hello, ${name}! ${num}人目のお客様です"
    println(msg)
    
    name = "Taro"
    msg = "Hello, ${name}! ${++num}人目のお客様です"
    println(msg)
    
    name = "Hanako"
    msg = "Hello, ${name}! ${++num}人目のお客様です"
    println(msg)
}

結果は下記の通りです。

Hello, world! 1人目のお客様です
Hello, Taro! 2人目のお客様です
Hello, Hanako! 3人目のお客様です

${num * 5} もできますし、${num * num2} のように num2 という変数が他に定義されていれば組み合わせることもできます。

あまり複雑なことを書くのはオススメしませんが、文字列の中に変数が埋め込めることは覚えておきたいですね。

やさしいKotlin入門

プログラミング初心者または Kotlin 初心者向けの入門本。Android 開発ではなく Kotlin の言語を覚えてみたい方にオススメの入門本です。

Java と比較して説明される書籍が多い中、Java や他のプログラム言語を知らない人向けになるので、例えば Java はあまり詳しくないけど PHP や Python は書けるといったパターンとも相性がいいですよ。

created by Rinker
¥2,592
(2018/10/19 23:33:06時点 Amazon調べ-詳細)

あなたにオススメ