サーチ…
文字列の要素
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