Les chaînes de caractères Swift sont des éléments fondamentaux pour la programmation. Elles permettent le stockage et la manipulation des données textuelles de manière efficace et sûre. Découvrons comment créer, concaténer et formater des chaînes.

Chaînes littérales

En Swift, vous pouvez déclarer une chaîne en utilisant la syntaxe suivante :


let uneChaine: String = "Une valeur littérale de chaîne"

Mais, comme nous l'avons vu dans le chapitre sur les types de données, Swift peut déduire un type String pour la constante uneChaine sans qu'il ne soit précisé. On dit qu'il s'agit d'un type implicite ou d'une interférence de type.


let uneChaine = "Une valeur littérale de chaîne"

Si vous devez écrire un texte sur plusieurs lignes, il vous faudra alors commencer par trois guillemets (""") et terminer de la même façon par trois guillemets ("""). Ainsi, le compilateur comprendra que le contenu de la variable ou de la constante est sur plusieurs lignes.


let multilineString = """
Une chaîne 
sur 
plusieurs lignes
"""

Si vous souhaitez utiliser des sauts de lignes pour rendre votre code source plus facile à lire, mais que vous ne voulez pas que les sauts de lignes fassent partie de la valeur de la chaîne, écrivez une barre oblique inverse \ à la fin de ces lignes.

Caractères spéciaux

Si vous vous rappelez du chapitre sur les constantes et les variables, l'interpolation de chaînes permet d'insérer des valeurs dans une chaîne en utilisant des espaces réservés :


var age = 25
var message = "J'ai \(age) ans."

print(message)
// Affichera : J'ai 25 ans.

On peut également utiliser le caractère d'interpolation (ou échappatoire) \ (slash inversé) pour afficher un symbole dans une chaîne de caractères. Imaginons que votre texte comporte des guillemets, sachant que l'on met entre guillemets la valeur d'une variable ou d'une constante, ces dernières fermeraient précocement l'encadrement de la valeur à assigner. Grâce au caractère échappatoire, cela devient possible :


let motSage = "\"L'imagination est plus importante que la connaissance\" - Einstein"

// "L'imagination est plus importante que la connaissance" - Einstein
// Le caractère échappatoire \ permet d'afficher les guillemets

A l'inverse, on peut utiliser des délimiteurs de chaînes étendus pour créer des chaînes contenant des caractères qui seraient traités normalement et non comme une interpolation de chaînes à l'aide du symbole #.


print(#"Écrivez une chaîne interpolée dans Swift en utilisant \(multiplier)."#)
// Affichera : "Écrivez une chaîne interpolée dans Swift en utilisant \(multiplier)."

Initialisation d'une chaîne vide

Pour déclarer une variable ou une constante avec une chaine de caractères vide, il existe deux solutions. Soit vous ouvrez puis refermez les guillemets juste après le signe égal sans rien mettre à l'interieur. Soit, grâce à l'interférence de type en indiquant le type suivi de parenthèses :


// Avec des guillemets vides
var chaineVide = ""

// Avec l'interférence de type
var autreChaineVide = String() 

Les deux solutions ont un résultat identique. Sachez qu'elles existent et utilisez celle qui vous convient le plus.

Vérification d'une chaîne vide

Pour vérifier si une valeur String est vide, on utilise la méthode booléenne isEmpty. Ne vous inquiétez pas si vous avez un peu de mal à comprendre ce point, c'est normal. Je souhaitais simplement que vous sachiez que cela est possible. Les méthodes sont un concept que nous découvrirons un peu plus loin dans ce tutoriel.

Pour faire simple, dans le code ci-dessous, nous allons utiliser une condition if. Si cette condition est vrai (true), alors les instructions entre les accolades seront effectuées.

Le code vérifie si la chaîne de caractères chaineVide est vide. On pourrait traduire la condition if par "si la chaîne de caractères chaineVide est vide, fais ce qui suit." Donc si la condition est vraie (c'est-à-dire si chaineVide est effectivement une chaîne vide), alors on affiche le message "Le String est vide". Nous aborderons la condition if dès le prochain chapitre.


// On utilise une condition IF
if chaineVide.isEmpty {
    print("Le String est vide")
}
// Affichera : "Le String est vide"

Le type Character

Légèrement moins utilisé, mais important malgré tout, le type Character vous permet d'assigner un caractère comme valeur à une variable ou à une constante.


let pointExclamation: Character = "!"

Concaténation de chaînes et de caractères

La concaténation, c'est-à-dire la combinaison de plusieurs chaînes, peut être réalisée avec l'opérateur +. Il permet la concaténation de chaines de caractères pour les assembler afin de n'en faire plus qu'une.


let string1 = "Bonjour"
let string2 = " à tous"
var salutation = string1 + string2
// salutation a pour valeur : "Bonjour à tous"

Nous avons aussi découvert dans le chapitre sur les opérateurs de bases, l'opérateur d'affectation combiné. Il préférable de l'utiliser car il rend votre code encore plus lisible.


var instruction = "Bonne année"
instruction += string2
// instruction a pour valeur "Bonne année à tous"

La méthode count

Après avoir vu la méthode isEmpty un peu plus haut, voici la méthode count. Elle s'utilise de la même manière que isEmpty et permet de compter le nombre de caractères, espaces compris, contenus dans une chaîne.


var mot = "Bonjour"
var longueur = mot.count

// longueur à pour valeur : 7

On utilise count pour obtenir la longueur d'une chaîne. Pour utiliser cette méthode, on écrit le nom de la variable immédiatement suivi d'un point et du nom de la méthode :


let menagerie = "Chat, Chien, Poule, Vache"
print("menagerie a \(menagerie.count) caractères")
// "menagerie a 25 caractères"

Sans vous en rendre compte, vous découvrez petit à petit les principes fondamentaux du langage de programmation Swift en y étant confronté progressivement... Faites moi confiance, vous êtes sur le bon chemin.

  • Un chaîne de type String est une série de caractères. Tout ce qui se trouve entre les guillemets (caractère, nombre, espace, ...) en fait partie.
  • Le caractère d'interpolation \ permet d'ajouter certains symboles dans une chaîne de caractères.
  • La concaténation de chaînes de caractères permet de les réunir en une seule nouvelle chaîne.
  • De nombreuses méthodes existent et permettent de manipuler les chaînes de caractères.

Prenez quelques minutes pour faire cet exercice. Cela consolidera votre apprentissage de manière efficace en passant de la théorie à la pratique. N'hésitez pas à faire vos propres experiences, vous progresserez plus vite ainsi.

Pour ce premier exercice, nous allons faire simple. Cela peut vous demander un peu de réflexion, mais c'est l'occasion de mettre en oeuvre tout ce que vous avez appris. Vous procéderez de la manière suivante :

  1. Commencez par créer un tuple contenant deux valeurs en les nommant nom et prenom. Vous leur assignerez une valeur de type String.
  2. Vous décomposerez ce tuple en deux constantes appelées nomPersonne et prenomPersonne.
  3. Vous effectuerez une concaténation de nomPersonne et prenomPersonne dans une nouvelle constante appelée personne.
  4. Et enfin, vous afficherez "Bonjour " + personne, via l'interpolation de chaîne de caractères

// 1
let info = (nom: "Dupont", prenom: "Antoine")

// 2
let (nomPersonne, prenomPersonne) = info

// 3
let personne = prenomPersonne + " " + nomPersonne

// 4
print("Bonjour \(personne)")

La petite astuce résidait dans l'ajout d'un espace entre le prénom et le nom ...