Caution
お使いのブラウザはJavaScriptが実行できない状態になっております。
当サイトはWebプログラミングの情報サイトの為、
JavaScriptが実行できない環境では正しいコンテンツが提供出来ません。
JavaScriptが実行可能な状態でご閲覧頂くようお願い申し上げます。
String テンプレート
文字列テンプレートは文字列リテラルの中に変数や式を『$』や『${}』で埋め込む機能です。文字列連結より読みやすく、Kotlin では広く使われています。
構文
// 変数を埋め込みます。
"こんにちは、$name さん"
// 式を埋め込みます(波括弧が必要)。
"合計: ${price * count} 円"
// 生文字列(トリプルクォート)。
"""
複数行の
文字列
"""
構文一覧
| 構文 | 概要 |
|---|---|
| $変数名 | 変数の値を文字列に埋め込みます。変数名の直後に英字・数字・アンダースコアが続く場合は波括弧が必要です。 |
| ${式} | 任意の式を評価した結果を埋め込みます。メソッド呼び出しや計算式も記述できます。 |
| """...""" | 生文字列(raw string)です。改行やバックスラッシュをエスケープなしで含められます。 |
| trimIndent() | 生文字列の共通インデントを除去します。コードのインデントを保ちながら文字列を整形できます。 |
| trimMargin() | 各行の先頭にある指定文字(デフォルト『|』)までを除去します。 |
サンプルコード
fun main() {
val name = "太郎"
val age = 25
// 変数を埋め込みます。
println("こんにちは、$name さん") // 『こんにちは、太郎 さん』と出力されます。
// 式を埋め込みます。
println("来年は ${age + 1} 歳です。") // 『来年は 26 歳です。』と出力されます。
// メソッド呼び出しも埋め込めます。
val items = listOf("りんご", "みかん", "ぶどう")
println("${items.size} 個のアイテムがあります。") // 『3 個のアイテムがあります。』と出力されます。
println("大文字: ${name.uppercase()}") // 『大文字: 太郎』と出力されます。
// 生文字列(改行やタブをそのまま含められます)。
val json = """
{
"name": "$name",
"age": $age
}
""".trimIndent()
println(json)
// {
// "name": "太郎",
// "age": 25
// }
// と出力されます。
// $ 記号自体を出力したい場合は ${'$'} と書きます。
val price = 500
println("価格: ${'$'}$price") // 『価格: $500』と出力されます。
// trimMargin を使った例です。
val text = """
|1行目
|2行目
|3行目
""".trimMargin()
println(text)
// 『1行目』『2行目』『3行目』がそれぞれ改行されて出力されます。
}
概要
文字列テンプレートを使うと、『"Hello, " + name + "!"』のような文字列連結よりも読みやすいコードが書けます。変数名の直後に英字が続く場合(例:『${count}個』)は波括弧を省略すると変数名の一部と誤認されるため、必ず『${}』を使ってください。
生文字列は正規表現パターンや JSON のようなエスケープが多い文字列の記述に特に便利です。基本データ型については『基本データ型』を、変数宣言については『val / var』を参照してください。
記事の間違いや著作権の侵害等ございましたらお手数ですがこちらまでご連絡頂ければ幸いです。