Kotlin : Les Chaines de Caractères

Une Chaine de Caractère (String) est un tableau de caractères. Les chaînes de caractères Kotlin sont plus ou moins similaires aux chaînes de caractères Java, mais avec quelques nouveaux ajouts. Voici la syntaxe pour définir une chaîne.
var str : Chaîne = "PandaCodeur"
/ou
var str = "PandaCodeur"
var newString : Chaîne = 'A' //ERREUR
var newString : Chaîne = 2 //ERROR

Les chaînes en Kotlin sont implémentées à l'aide de la classe String. Comme les String de Java, les String de Kotlin sont immuables.
var str = "Bonjour"
str += "Chaînes Kotlin".

La déclaration ci-dessus change la référence de la variable str dans la deuxième ligne à la chaîne nouvellement créée ("Hello Kotlin Strings") dans le String Pool.
Création d'une chaîne vide :
var s = String() //crée une chaîne vide.

Contrairement à Java, Kotlin ne nécessite pas de mot-clé new pour instancier un objet d'une classe.


Propriétés et fonctions importantes de Kotlin String
length : Il s'agit d'une propriété à laquelle on peut accéder en utilisant l'opérateur point sur la chaîne. Elle retourne le nombre de caractères présents dans une chaîne de caractères.
Kotlin code online 1

get(index) : Renvoie le caractère spécifié à l'indice particulier
subSequence(startIndex, endIndex) : Renvoie la sous-chaîne entre l'index de départ et l'index d'arrivée, mais sans le caractère de l'index d'arrivée.
subSequence(startIndex, endIndex) : Renvoie la sous-séquence entre l'indice de départ et l'indice de fin, à l'exclusion du caractère d'indice de fin.
Kotlin code online 2

a.compareTo(b) : Si a est égal à b, il renvoie 0, si a<b il renvoie un nombre positif. compareTo accepte aussi un autre argument, à savoir ignoreCase.

Kotlin code online 3



Accès aux caractères d'une chaîne de caractères
Pour accéder aux caractères individuels d'une chaîne de caractères, Kotlin prend en charge l'opérateur d'accès à l'index (contrairement à Java), comme indiqué ci-dessous.
Utilisation de l'opérateur d'indexation
var str = "Bonjour, Kotlin".
print(str[0]) //imprime B
KotlinCopy
Utilisation de la méthode get
val str = "Bonjour, Kotlin Strings"
println(str.get(4)) //imprime j

Itération dans une chaîne de caractères
Nous pouvons parcourir une chaîne de caractères pour accéder à chaque caractère en utilisant une boucle for-in comme indiqué ci-dessous.
for(element in str){
      println(élément)
   }

Caractères d'échappement dans les chaînes de caractères Kotlin
Voici les caractères d'échappement qui, lorsqu'ils sont utilisés avec une barre oblique inverse, se comportent différemment.

\n nouvelle ligne.
\r retour chariot.
\t tabulation.
\b retour arrière
\" guillemet double
\" guillemet simple
\" barre oblique inversée
\$ dollar - Le symbole du dollar est utilisé dans les modèles de chaîne de caractères que nous verrons plus loin.


Modèles de chaînes de caractères
Au lieu de concaténer une expression dans une chaîne, les chaînes peuvent contenir des expressions/états suivant un symbole dollar comme indiqué ci-dessous.
var len = str.length
var newStr = "La longueur de str est ${str.length}"
/ou
var newStr = "La longueur de la chaîne de caractères est de $len".
println(La longueur de str est ${str.length})

En utilisant les modèles de chaîne, nous pouvons insérer des variables et des expressions dans une chaîne. Les modèles de chaîne sont couramment utilisés dans les instructions d'impression.
Pour utiliser le symbole $ dans une chaîne, nous devons échapper le caractère.


Égalité des chaînes de caractères
Il existe deux types de vérificateurs d'égalité.

Égalité référentielle : Vérifie si les pointeurs de deux objets sont les mêmes. L'opérateur === est utilisé.
Égalité structurelle : vérifie si le contenu des deux objets est identique. On utilise l'opérateur ==.
L'extrait de code suivant démontre les vérificateurs ci-dessus

var a = "Hello" (Bonjour)
var b = "Hello again" (Bonjour encore)
var c = "Bonjour"
var d1 = "Hel"
var d2 = "lo"
var d = d1 + d2
println(a===c) // vrai puisque les objets a et c pointent vers la même chaîne dans le StringPool
println(a==c) //vrai puisque les contenus sont identiques
println(a===b) //faux
println(a==b) //faux
println(a===d) //faux puisque d est composé de deux chaînes différentes. Par conséquent, a et d désignent des ensembles de chaînes différents.
println(a==d) //vrai puisque les contenus sont égaux.

Remarque : la négation de === et == est respectivement !=== et !==.

  • 1 vote. Moyenne 5 sur 5.