English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Chaînes de caractères et modèles de chaînes Kotlin

Dans cet article, vous apprendrez Kotlin chaînes de caractères, les modèles de chaînes et quelques propriétés et fonctions de chaînes couramment utilisées à l'aide d'exemples.

String (chaîne) en Kotlin

Les chaînes sont des séquences de caractères. Par exemple, "Hello there!" est une chaîne littérale.

En Kotlin, toutes les chaînes sont des objets de la classe String. Cela signifie que des chaînes littérales telles que "Hello here!" sont implémentées comme des instances de cette classe.

Comment créer une variable de chaîne ?

Voici la méthode pour définir une variable String en Kotlin. Par exemple,

val monString = "Hey there!"

Dans ce cas, monString est une variable de type String.

Vous pouvez déclarer une variable de type String et spécifier son type en une seule instruction, puis l'initialiser dans une autre instruction plus tard dans le programme.

val monString: String
... .. ...
monString = "Howdy"

Comment accéder aux caractères d'une chaîne ?

Pour accéder aux éléments (caractères) d'une chaîne, utilisez l'opérateur d'accès d'index. Par exemple,

val monString = "Hey there!"
val item = myString[2]

Dans ce cas, la variable item contient le troisième caractère 'y' de la chaîne monString. Cela est dû au fait que les indices en Kotlin commencent à 0 au lieu de 1.

val monString = "Hey there!"
var item: Char
item = myString[0]    // item = 'H'
item = myString[9]    // item = '!'
item = myString[10]   // Erreur ! Index de chaîne hors de portée
item = myString[-1]  // Erreur ! Index de chaîne hors de portée

Exemple : parcourir une chaîne

Si vous avez besoin de parcourir les éléments d'une chaîne, vous pouvez utiliserBoucle forFacileRéalisation.

fun main(args: Array<String>) {
    val monString = "Hey!"
    for (item in monString) {
        println(item)
    }
}

La sortie de l'exécution du programme est :

H
e
y
!

Les chaînes de caractères en Kotlin sont immuables

Comme en Java, les chaînes de caractères sont immuables en Kotlin. Cela signifie que vous ne pouvez pas modifier un seul caractère d'une chaîne. Par exemple,

var monString = "Hey!"
monString[0] = 'h'      // Erreur ! Chaine

Cependant, si vous utilisez le mot-clé var pour déclarer une variable de chaîne, vous pouvez réaffecter cette variable. (Lecture recommandée:Kotlin var vs val)

Exemple : réaffectation d'une variable de chaîne.

fun main(args: Array<String>) {
    var monString = "Hey!"
    println("monString = $monString")
    monString = "Hello!"
    println("monString = $monString")
}

La sortie de l'exécution du programme est :

myString = Hey!
myString = Hello!

chaîne littérale

Un littéral est la représentation en source du valeur fixe. Par exemple, "Hey there!" est une chaîne littérale qui apparaît directement dans le programme sans nécessiter de calcul (commeVariable)

Il y a deux types de littéraux de chaînes en Kotlin :

1.chaîne de caractères échappée

Les caractères peuvent déjà être échappés dans une chaîne de caractères. Par exemple

val myString = "Hey there!\n"

Ici, \n est un caractère d'échappement, utilisé pour insérer un saut de ligne à l'endroit où il apparaît dans le texte.

Voici la liste des caractères d'échappement pris en charge par Kotlin :

  • \t -  Insérer le tabulation

  • \b - Insérer le retour arrière

  • \n - Insérer le saut de ligne

  • \r - Insérer le retour chariot

  • \' - Insérer le caractère guillemet simple

  • \" - Insérer le caractère guillemet double

  • \\ - Insérer le caractère barre oblique

  • \$ - Insérer le caractère dollar

2.chaîne de caractères originale

La chaîne de caractères originale peut contenir des retours chariot (non des retours chariot) et tout texte. La chaîne de caractères originale est séparée par trois guillemets """. Par exemple,

fun main(args: Array<String>) {
    val myString = """
    for (character in "Hey!")
        println(character)
"""
    print(myString)
}

La sortie de l'exécution du programme est :

    for (character in "Hey!")
        println(character)

Vous pouvez utiliser la fonction trimMargin() pour supprimer les espaces de début de la chaîne de caractères originale. Par exemple,

Exemple : impression de la chaîne de caractères originale

fun main(args: Array<String>) {
    println("Sortie sans la fonction trimMargin() :")
    val myString = """
    |Kotlin est intéressant.
    |Kotlin est sponsorisé et développé par JetBrains.
"""
    println(myString)
    println("Sortie avec la fonction trimMargin() :\n")
    println(myString.trimMargin())
}

La sortie de l'exécution du programme est :

Sortie sans la fonction trimMargin() :
    |Kotlin est intéressant.
    |Kotlin est sponsorisé et développé par JetBrains.
Sortie avec la fonction trimMargin() :
Kotlin est intéressant.
Kotlin est sponsorisé et développé par JetBrains.

Par défaut, la fonction trimMargin() utilise | comme préfixe de marge. Mais vous pouvez le changer en passant une nouvelle chaîne de caractères à la fonction.

Exemple : la fonction trimMargin() avec paramètres

fun main(args: Array<String>) {
    val myString = """
    !!! Kotlin est intéressant.
    !!! Kotlin est sponsorisé et développé par JetBrains.
"""
    println(myString.trimMargin("!!! "))
}

La sortie de l'exécution du programme est :

Kotlin est intéressant.
Kotlin est sponsorisé et développé par JetBrains.

Modèles de chaîne Kotlin

Kotlin a une excellente fonctionnalité appelée modèle de chaîne, qui permet aux chaînes de caractères de contenir des expressions de modèle.

Les expressions de modèle de chaîne Kotlin commencent par le symbole $. Voici quelques exemples :

Exemple : Modèles de chaîne Kotlin

fun main(args: Array<String>) {
    val myInt = 5;
    val myString = "myInt = $myInt"
    println(myString)
}

La sortie de l'exécution du programme est :

myInt = 5

C'est parce que l'expression de l'expression ${myInt} (une expression commençant par le symbole $) est évaluée et concaténée à la chaîne.

Exemple : Modèles de chaîne avec chaîne originale

fun main(args: Array<String>) {
    val a = 5
    val b = 6
    val myString = """
    |${if (${a} > ${b}) ${a} else ${b}}
"""
    println("Le plus grand nombre est: ${myString.trimMargin()}")
}

La sortie de l'exécution du programme est :

Le plus grand nombre est: 6

Plusieurs propriétés et fonctions de chaîne

Les littéraux en Kotlin sont implémentés comme des instances de la classe String, donc vous pouvez utiliser plusieurs méthodes et propriétés de cette classe.

  • Propriété length - Retourne la longueur de la séquence de caractères de la chaîne.

  • Fonction compareTo -Compare cette chaîne de caractères (objet) avec l'objet spécifié. Si l'objet est égal à l'objet spécifié, retourne 0.

  • Fonction get - Retourne le caractère à l'indice spécifié. Vous pouvez utiliser l'opérateur d'accès à l'indice plutôt que la fonction get, car l'opérateur d'accès à l'indice appelle en interne la fonction get.

  • la fonction plus - Retourne une nouvelle chaîne de caractères, obtenue en concaténant cette chaîne de caractères avec la chaîne de caractères passée à cette fonction. Vous pouvez utiliser + L'opérateur remplace la fonction plus, car+L'opérateur appelle le fonction plus en arrière-plan.

  • Fonction subSequence - Retourne une nouvelle séquence de caractères à partir des indices de début et de fin spécifiés.

Exemple : Propriétés et fonctions de chaîne de caractères

fun main(args: Array<String>) {
    val s1  = "Hey there!"
    val s2 = "Hey there!"
    var result: String
    println("s1La longueur de la chaîne de caractères est ${s1.length}) "
    result = if (${s1.compareTo(s2) == 0) "égal" else "inégal"
    println("La chaîne de caractères s1et s2est ${result})
    // s1.get(2) équivaut à ${s1[2]
    println("Le troisième caractère est ${s1.get(2})
    result = s1.plus(" How are you?") // result = s1 + "How are you?"
    println("result = " + result)
    println("La sous-chaîne est " + s1.subSequence(4, 7}}
}

Lors de l'exécution du programme, la sortie est :

s1La longueur de la chaîne est 10.
La chaîne s1et s2C'est égal.
Le troisième caractère est y.
result = Hey there! How are you?
La sous-chaîne est "the"