サーチ…


文字列の要素

Stringの要素は、インデックス操作string[index]によってアクセスできるstring[index]です。

val str = "Hello, World!"
println(str[1]) // Prints e

文字列要素は、forループで反復することができます。

for (c in str) {
    println(c)
}

文字列リテラル

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

  • エスケープ文字列
  • 生の文字列

エスケープされた文字列は、特殊文字をエスケープして処理します。エスケープはバックスラッシュで行います。次のエスケープシーケンスがサポートされています: \t\b\n\r\'\"\\および\$ Unicodeエスケープシーケンス構文: \uFF00ます。

val s = "Hello, world!\n"

トリプルクォート"""で区切られた生の文字列は、エスケープを含まず、改行やその他の文字を含むことができます

val text = """
    for (c in "foo")
        print(c)
"""

先行する空白はtrimMargin()関数で取り除くことができます。

val text = """
    |Tell me and I forget.
    |Teach me and I remember.
    |Involve me and I learn.
    |(Benjamin Franklin)
    """.trimMargin()

既定のマージンプレフィックスはパイプ文字です|これはtrimMarginのパラメータとして設定できます。例えばtrimMargin(">")

文字列テンプレート

エスケープされた文字列と生の文字列の両方にテンプレート式を含めることができます。テンプレート式は評価されるコードの一部であり、その結果は文字列に連結されます。ドル記号$始まり、変数名で構成されています:

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

または、中括弧で囲まれた任意の式

val s = "abc"
val str = "$s.length is ${s.length}" // evaluates to "abc.length is 3"

文字列にリテラルドル記号を含めるには、バックスラッシュを使用してエスケープします。

val str = "\$foo" // evaluates to "$foo"

エスケープをサポートしていない生の文字列は例外です。生の文字列では、以下の構文を使用してドル記号を表すことができます。

val price = """
${'$'}9.99
"""

文字列等価

Kotlinの文字列は、 ==演算子と比較され、構造的に等価であることが示されます。

val str1 = "Hello, World!"
val str2 = "Hello," + " World!"
println(str1 == str2) // Prints true

参照平等は===演算子でチェックされます。

val str1 = """
    |Hello, World!
    """.trimMargin()

val str2 = """
    #Hello, World!
    """.trimMargin("#")

val str3 = str1

println(str1 == str2) // Prints true
println(str1 === str2) // Prints false
println(str1 === str3) // Prints true


Modified text is an extract of the original Stack Overflow Documentation
ライセンスを受けた CC BY-SA 3.0
所属していない Stack Overflow