Zoeken…
Elementen van String
Elementen van String zijn tekens die toegankelijk zijn via de indexeringsbewerkingstring string[index]
.
val str = "Hello, World!"
println(str[1]) // Prints e
Stringelementen kunnen worden herhaald met een for-lus.
for (c in str) {
println(c)
}
String Literals
Kotlin heeft twee soorten stringliterals:
- Ontsnapte string
- Raw string
Ontsnapte tekenreeksen verwerken speciale tekens door ze te ontsnappen. Ontsnappen gebeurt met een backslash. De volgende escape-reeksen worden ondersteund: \t
, \b
, \n
, \r
, \'
, \"
, \\
en \$
. Gebruik de syntaxis van de Unicode-escape-reeks om een ander teken te coderen: \uFF00
.
val s = "Hello, world!\n"
Ruwe tekenreeks gescheiden door een drievoudige quote """
, bevat geen ontsnapping en kan nieuwe regels en andere tekens bevatten
val text = """
for (c in "foo")
print(c)
"""
Voorloopruimte kan worden verwijderd met de functie trimMargin () .
val text = """
|Tell me and I forget.
|Teach me and I remember.
|Involve me and I learn.
|(Benjamin Franklin)
""".trimMargin()
Standaard margevoorvoegsel is pijpteken |
, dit kan worden ingesteld als een parameter voor trimMargin; bijv. trimMargin(">")
.
String-sjablonen
Zowel ontsnapte tekenreeksen als onbewerkte tekenreeksen kunnen sjabloonuitdrukkingen bevatten. Sjabloonexpressie is een stuk code dat wordt geëvalueerd en het resultaat wordt samengevoegd tot een tekenreeks. Het begint met een dollarteken $
en bestaat uit een variabelenaam:
val i = 10
val s = "i = $i" // evaluates to "i = 10"
Of een willekeurige uitdrukking tussen accolades:
val s = "abc"
val str = "$s.length is ${s.length}" // evaluates to "abc.length is 3"
Om een letterlijk dollarteken in een string op te nemen, ontsnapt u met een backslash:
val str = "\$foo" // evaluates to "$foo"
De uitzondering zijn onbewerkte reeksen, die geen ondersteuning bieden voor ontsnappen. In onbewerkte tekenreeksen kunt u de volgende syntaxis gebruiken om een dollarteken weer te geven.
val price = """
${'$'}9.99
"""
String gelijkheid
In Kotlin worden strings vergeleken met de operator ==
die checken voor hun structurele gelijkheid.
val str1 = "Hello, World!"
val str2 = "Hello," + " World!"
println(str1 == str2) // Prints true
Referentiële gelijkheid wordt gecontroleerd met de operator ===
.
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