Kotlin
strängar
Sök…
Elements of String
Elements of String är tecken som kan nås med indexeringsoperationssträngen string[index]
.
val str = "Hello, World!"
println(str[1]) // Prints e
Strängelement kan itereras med en för-slinga.
for (c in str) {
println(c)
}
String Literals
Kotlin har två typer av strängbokstäver:
- Rymd sträng
- Rå sträng
Rymdsträng hanterar specialtecken genom att undkomma dem. Rymning görs med ett motstreck. Följande escape-sekvenser stöds: \t
, \b
, \n
, \r
, \'
, \"
, \\
och \$
. Om du vill koda något annat tecken använder du syntaxen för Unicode-escape-sekvensen: \uFF00
.
val s = "Hello, world!\n"
Rå sträng avgränsad av en trefaldig offert """
, innehåller inget flykt och kan innehålla nya linjer och andra tecken
val text = """
for (c in "foo")
print(c)
"""
Ledande mellanrum kan tas bort med funktionen trimMargin () .
val text = """
|Tell me and I forget.
|Teach me and I remember.
|Involve me and I learn.
|(Benjamin Franklin)
""".trimMargin()
Standardmarginalprefix är rörtecken |
, detta kan ställas in som en parameter för trimMargin; t.ex. trimMargin(">")
.
Strängmallar
Både undkomna strängar och råa strängar kan innehålla malluttryck. Malluttryck är en kodkod som utvärderas och dess resultat sammanförs i sträng. Det börjar med ett dollartecken $
och består av antingen ett variabelt namn:
val i = 10
val s = "i = $i" // evaluates to "i = 10"
Eller ett godtyckligt uttryck i lockiga hängslen:
val s = "abc"
val str = "$s.length is ${s.length}" // evaluates to "abc.length is 3"
Om du vill inkludera ett bokstavligt dollartecken i en sträng kan du undvika det med ett motstreck:
val str = "\$foo" // evaluates to "$foo"
Undantaget är råa strängar, som inte stöder rymning. I råa strängar kan du använda följande syntax för att representera ett dollartecken.
val price = """
${'$'}9.99
"""
Sträng jämställdhet
I Kotlin jämförs strängar med ==
operatör som väljer sin strukturella jämlikhet.
val str1 = "Hello, World!"
val str2 = "Hello," + " World!"
println(str1 == str2) // Prints true
Referensjämlikhet kontrolleras med ===
operatör.
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