Dans cet article, vous en apprendrez davantage sur les chaînes Kotlin, les modèles de chaînes et quelques propriétés et fonctions de chaîne couramment utilisées à l'aide d'exemples.
Chaîne de Kotlin
Les chaînes sont une séquence de caractères. Par exemple, "Hello there!"
est une chaîne littérale.
Dans Kotlin, toutes les chaînes sont des objets de String
classe. Cela signifie que les chaînes littérales telles que "Hello there!"
sont implémentées en tant qu'instances de cette classe.
Comment créer une variable String?
Voici comment vous pouvez définir une String
variable dans Kotlin. Par exemple,
val myString = "Salut!"
Ici, myString est une variable de type String
.
Vous pouvez déclarer une variable de type String
et spécifier son type dans une instruction, et initialiser la variable dans une autre instruction plus tard dans le programme.
val myString: String… myString = "Howdy"
Comment accéder aux caractères d'une chaîne?
Pour accéder aux éléments (caractère) d'une chaîne, l'opérateur d'accès à l'index est utilisé. Par exemple,
val myString = "Salut!" élément val = maString (2)
Ici, la variable d'élément contient y, troisième caractère de la chaîne myString. C'est parce que l'indexation dans Kotlin commence à 0 et non à 1.
val myString = "Salut!" var item: Char item = myString (0) // item contient 'H' item = myString (9) // item contient '!' item = myString (10) // Erreur! L'index de la chaîne est hors de portée item = myString (-1) // Erreur! L'index de chaîne est hors de portée
Exemple: itérer à travers une chaîne
Si vous devez parcourir des éléments d'une chaîne, vous pouvez le faire facilement en utilisant une boucle for.
fun main(args: Array) ( val myString = "Hey!" for (item in myString) ( println(item) ) )
Lorsque vous exécutez le programme, la sortie sera:
H e y !
Les chaînes de Kotlin sont immuables
Comme Java, les chaînes sont immuables dans Kotlin. Cela signifie que vous ne pouvez pas modifier le caractère individuel d'une chaîne. Par exemple,
var myString = "Hé!" myString (0) = 'h' // Erreur! Cordes
Cependant, vous pouvez réaffecter une variable chaîne si vous avez déclaré la variable à l'aide du mot clé var
. ( Lecture recommandée : Kotlin var Vs val)
Exemple: réattribution d'une variable chaîne.
fun main(args: Array) ( var myString = "Hey!" println("myString = $myString") myString = "Hello!" println("myString = $myString") )
Lorsque vous exécutez le programme, la sortie sera:
myString = Hé! myString = Bonjour!
Littéraux de chaîne
Un littéral est la représentation dans le code source d'une valeur fixe. Par exemple, "Hey there!"
est une chaîne littérale qui apparaît directement dans un programme sans nécessiter de calcul (comme les variables).
Il existe deux types de littéraux de chaîne dans Kotlin:
1. Chaîne échappée
Une chaîne échappée peut contenir des caractères échappés. Par exemple,
val myString = "Salut! n"
Voici un caractère d'échappement qui insère une nouvelle ligne dans le texte là où il apparaît.
Voici une liste des caractères d'échappement pris en charge dans Kotlin:
- Insère un retour arrière
- Insère une nouvelle ligne
- Insère le retour chariot
\'
- Insère un caractère guillemet simple"
- Insère un caractère guillemet double\
- Insère une barre oblique inverse$
- Insère le caractère dollar
2. Chaîne brute
Une chaîne brute peut contenir des sauts de ligne (pas de caractère d'échappement de nouvelle ligne) et du texte arbitraire. Une chaîne brute est délimitée par un guillemet triple """
. Par exemple,
fun main(args: Array) ( val myString = """ for (character in "Hey!") println(character) """ print(myString) )
Lorsque vous exécutez le programme, la sortie sera:
for (caractère dans "Hey!") println (caractère)
Vous pouvez supprimer les premiers espaces d'une chaîne brute à l'aide de la fonction trimMargin (). Par exemple,
Exemple: impression d'une chaîne brute
fun main(args: Array) ( println("Output without using trimMargin function:") val myString = """ |Kotlin is interesting. |Kotlin is sponsored and developed by JetBrains. """ println(myString) println("Output using trimMargin function:") println(myString.trimMargin()) )
Lorsque vous exécutez le programme, la sortie sera:
Sortie sans utiliser la fonction trimMargin: | Kotlin est intéressant. | Kotlin est sponsorisé et développé par JetBrains. Sortie en utilisant la fonction trimMargin: Kotlin est intéressant. Kotlin est sponsorisé et développé par JetBrains.
Par défaut, la trimMargin()
fonction utilise | comme préfixe de marge. Cependant, vous pouvez le modifier en passant une nouvelle chaîne à cette fonction.
Exemple: trimMargin () avec Argument
fun main(args: Array) ( val myString = """ !!! Kotlin is interesting. !!! Kotlin is sponsored and developed by JetBrains. """ println(myString.trimMargin("!!! ")) )
Lorsque vous exécutez le programme, la sortie sera:
Kotlin est intéressant. Kotlin est sponsorisé et développé par JetBrains.
Kotlin String Templates
Kotlin has an awesome feature called string templates that allows strings to contain template expressions.
A string template expression starts with a dollar sign $
. Here are few examples:
Example: Kotlin String Template
fun main(args: Array) ( val myInt = 5; val myString = "myInt = $myInt" println(myString) )
When you run the program, the output will be:
myInt = 5
It is because the expression $myInt (expression starting with $ sign) inside the string is evaluated and concatenated into the string.
Example: String Template With Raw String
fun main(args: Array) ( val a = 5 val b = 6 val myString = """ |$(if (a> b) a else b) """ println("Larger number is: $(myString.trimMargin())") )
When you run the program, the output will be:
Larger number is: 6
Few String Properties and Functions
Since literals in Kotlin are implemented as instances of String
class, you can use several methods and properties of this class.
length
property - returns the length of character sequence of an string.compareTo
function - compares this String (object) with the specified object. Returns 0 if the object is equal to the specfied object.get
function - returns character at the specified index.
You can use index access operator instead ofget
function as index access operator internally callsget
function.plus
function - returns a new string which is obtained by the concatenation of this string and the string passed to this function.
You can use+
operator instead ofplus
function as+
operator callsplus
function under the hood.subSequence
Function - returns a new character sequence starting at the specified start and end index.
Example: String Properties and Function
fun main(args: Array) ( val s1 = "Hey there!" val s2 = "Hey there!" var result: String println("Length of s1 string is $(s1.length).") result = if (s1.compareTo(s2) == 0) "equal" else "not equal" println("Strings s1 and s2 are $result.") // s1.get(2) is equivalent to s1(2) println("Third character is $(s1.get(2)).") result = s1.plus(" How are you?") // result = s1 + " How are you?" println("result = $result") println("Substring is "$(s1.subSequence(4, 7)) "") )
When you run the program, the output is:
La longueur de la chaîne s1 est de 10. Les chaînes s1 et s2 sont égales. Le troisième caractère est y. result = Salut! Comment vas-tu? La sous-chaîne est "la"
Visitez la classe Kotlin String pour plus d'informations sur les propriétés d'extension, l'extension, les fonctions et les constructeurs.