Recherche…
Éléments de ficelle
Les éléments de chaîne sont des caractères accessibles par la string[index]
opération d'indexation string[index]
.
val str = "Hello, World!"
println(str[1]) // Prints e
Les éléments de chaîne peuvent être itérés avec une boucle for.
for (c in str) {
println(c)
}
Littéraux de chaîne
Kotlin a deux types de littéraux de chaîne:
- Ficelle échappé
- Chaîne brute
Chaîne échappée gère les caractères spéciaux en leur échappant. L'échappement se fait avec une barre oblique inverse. Les séquences d'échappement suivantes sont prises en charge: \t
, \b
, \n
, \r
, \'
, \"
, \\
et \$
. Pour coder tout autre caractère, utilisez la syntaxe de séquence d'échappement Unicode: \uFF00
.
val s = "Hello, world!\n"
Chaîne brute délimitée par un triple guillemet """
, ne contient aucun échappement et peut contenir des nouvelles lignes et tout autre caractère
val text = """
for (c in "foo")
print(c)
"""
Les espaces blancs peuvent être supprimés avec la fonction trimMargin () .
val text = """
|Tell me and I forget.
|Teach me and I remember.
|Involve me and I learn.
|(Benjamin Franklin)
""".trimMargin()
Le préfixe de marge par défaut est le caractère de tuyau |
, cela peut être défini comme paramètre de trimMargin; eg trimMargin(">")
.
Modèles de chaînes
Les chaînes d'échappement et les chaînes brutes peuvent contenir des expressions de modèle. L'expression de modèle est un élément de code évalué et son résultat est concaténé en chaîne. Il commence par un signe dollar $
et se compose soit d'un nom de variable:
val i = 10
val s = "i = $i" // evaluates to "i = 10"
Ou une expression arbitraire entre accolades:
val s = "abc"
val str = "$s.length is ${s.length}" // evaluates to "abc.length is 3"
Pour inclure un signe littéral dans une chaîne, échappez-le en utilisant une barre oblique inverse:
val str = "\$foo" // evaluates to "$foo"
L'exception concerne les chaînes brutes, qui ne prennent pas en charge l'échappement. Dans les chaînes brutes, vous pouvez utiliser la syntaxe suivante pour représenter un symbole dollar.
val price = """
${'$'}9.99
"""
Égalité de chaîne
Dans Kotlin, les chaînes sont comparées avec l'opérateur ==
qui chect pour leur égalité structurelle.
val str1 = "Hello, World!"
val str2 = "Hello," + " World!"
println(str1 == str2) // Prints true
L'égalité référentielle est vérifiée avec l'opérateur ===
.
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