Kotlin
stringhe
Ricerca…
Elementi di stringa
Gli elementi di String sono caratteri a cui è possibile accedere tramite la string[index]
operazioni di indicizzazione string[index]
.
val str = "Hello, World!"
println(str[1]) // Prints e
Gli elementi stringa possono essere iterati con un ciclo for.
for (c in str) {
println(c)
}
String letterali
Kotlin ha due tipi di stringhe letterali:
- Stringa sfuggita
- Stringa grezza
La stringa di escape gestisce i caratteri speciali facendoli sfuggire. L'escape è fatto con una barra rovesciata. Sono supportate le seguenti sequenze di escape: \t
, \b
, \n
, \r
, \'
, \"
, \\
e \$
. Per codificare qualsiasi altro carattere, utilizzare la sintassi della sequenza di escape Unicode: \uFF00
.
val s = "Hello, world!\n"
Stringa raw delimitata da una virgola tripla """
, non contiene escape e può contenere righe nuove e qualsiasi altro carattere
val text = """
for (c in "foo")
print(c)
"""
Gli spazi bianchi principali possono essere rimossi con la funzione trimMargin () .
val text = """
|Tell me and I forget.
|Teach me and I remember.
|Involve me and I learn.
|(Benjamin Franklin)
""".trimMargin()
Il prefisso di margine predefinito è pipe character |
, questo può essere impostato come parametro su trimMargin; es. trimMargin(">")
.
Modelli di stringa
Entrambe le stringhe di escape e le stringhe non elaborate possono contenere espressioni di template. L'espressione template è un pezzo di codice che viene valutato e il suo risultato è concatenato in stringa. Inizia con un segno di dollaro $
e consiste in un nome di variabile:
val i = 10
val s = "i = $i" // evaluates to "i = 10"
O un'espressione arbitraria in parentesi graffe:
val s = "abc"
val str = "$s.length is ${s.length}" // evaluates to "abc.length is 3"
Per includere un simbolo di dollaro letterale in una stringa, sfuggire utilizzando una barra rovesciata:
val str = "\$foo" // evaluates to "$foo"
L'eccezione è costituita da stringhe non formattate, che non supportano l'escape. Nelle stringhe non formattate è possibile utilizzare la seguente sintassi per rappresentare un segno di dollaro.
val price = """
${'$'}9.99
"""
Uguaglianza delle stringhe
In Kotlin le stringhe vengono confrontate con l'operatore ==
che esegue il checking per la loro uguaglianza strutturale.
val str1 = "Hello, World!"
val str2 = "Hello," + " World!"
println(str1 == str2) // Prints true
L'uguaglianza referenziale viene verificata con l'operatore ===
.
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