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


Modified text is an extract of the original Stack Overflow Documentation
Licensierat under CC BY-SA 3.0
Inte anslutet till Stack Overflow