※本サイトで紹介している商品・サービス等の外部リンクには、アフィリエイト広告が含まれる場合があります。

6-3. 文字列型とリテラル

2023年7月24日

概要

文字列型は、任意の文字列を扱うデータ型です。

Immutable なので、一度値を設定した後、再度同じ変数に値を設定することはできません。

リテラル

文字列型は、2種類のリテラルがあります。

  • Escaped String : ダブルクォーテーション「"」で囲う方法です。特殊文字はエスケープシーケンスで表記します。
  • Raw String: 三連続クォーテーション「"""」で囲う方法です。文字列を表します。改行やバックスラッシュが通常の文字として扱われ、複数行にわたる記載が可能です。

"Hello World!"

""" The quick brown fox 
    jumps over the lazy dog."""

文字列型

型を宣言する際は「String」を使います。

データタイプ
String

文字列型とリテラルを使った代入の例です。

fun main(){
    val escapedString : String  = "This is an escaped String!\n\t Hello World!"
    val rawString :String  = """This is a multi-line string 
        and 
        will not have any escape sequence"""
    println(escapedString)
    println(rawString)
}

出力

This is an escaped String!
	 Hello World!
This is a multi-line string 
        and 
        will not have any escape sequence

Kotlin Playground での実行

This is an escaped String! のあとに改行(\n) があり、Hello! の前にタブ(\t) があります。
Raw String については、改行文字を含め、入力したとおりの文字列を保持しています。

再代入によるエラーの例

Immutable なので、一度値を設定した後に再度値を設定しようとするとエラー(コンパイルエラー)となります。

例 StringReassignSample.kt

fun main() {
    val str1 : String  = "Hello World!"
    str1 = "Hello Kotlin!"
    println(str1)
}

コンパイルエラー例

C:\kotlinc\bin>kotlinc StringReassignSample.kt.kt -include-runtime -d StringReassignSample.kt.jar
StringReassignSample.kt.kt:3:5: error: val cannot be reassigned
    str1 = "Hello Kotlin!"
    ^

C:\kotlinc\bin>