Les Strings

Apprendre l'utilisation et la manipulation des chaînes de caractères.

Voir sur YouTube

Le type String est une chaîne de caractères, comme par exemple :

  • “Salut les codeurs”
  • “Hello world”
  • “A”
  • “12”

Tous les caractères mis entre des guillemets. Et oui, le “12” mis entre guillemets n'est pas un Int mais une String. “” est aussi une String, vide, mais c'est une String.

Déclarer une String

Nous pouvons la déclarer avec ou sans son type. Swift gérera automatiquement son type avec ou sans valeur.

var firstString = "Salut les codeurs"
var secondString: String = "Comment allez-vous?"
var thirdString: String

Sur plusieurs lignes

Et si vous voulez faire une String sur plusieurs lignes ? Dans ce cas, il existe plusieurs façons :

  • Ajouter \n pour un saut à la ligne. Il s'agit de ce que l'on appelle les caractères d'échappement (ou escaping characters).
  • Utiliser le triple """.
var multiline1 = "Salut\nComment allez vous?"
print(multiline1)
var multiline2 = """
Salut les codeurs
Alors, vous aimez Swift?
"""
print(multiline2)

Initialiser une String sans valeur

Initialiser une String sans valeur peut être risqué, une string sans valeur (nil) causera une erreur et donc un crash de votre application. Mieux vaut initialiser une String vide ou avec un constructeur de classe.

var str = ""
var alternateStr = String()

Mutabilité des String

Cela signifie que l'on peut modifier, faire muter notre chaîne de caractères. On peut accoler une valeur à la valeur d'une String avec l'opérateur +=.

var str = "Apprenons la mutabilité"
str += " en ajoutant par exemple ce texte."
print(str)

Concaténation

Pour modifier une String, nous pouvons aussi utiliser la concaténation : c'est-à-dire ajouter une string à une autre avec l'opérateur +.

var first = "Matthieu"
var last = "Codabee"
var full = first + last
print(full)
var proto = "https://www."
var domain = "codabee"
var suffix = ".com"
var urlString = proto + domain + suffix
print(urlString)

Là nous obtenons MatthieuCodabee. Les 2 Strings ont été accolées et nous n'avons pas dit à Swift d'ajouter un espace. Faisons plutôt ceci :

var first = "Matthieu"
var last = "Codabee"
var full = first + " " + last
print(full)

La String interpolation

Pour intégrer une valeur String ou non dans une String, nous utilisons \(). La valeur à intégrer sera entre les parenthèses.

var age = 25
var name = "Billy"
var strInterpolation = "Salut, je m'appelle \(name) et j'ai \(age)."
print(strInterpolation)

Accès aux caractères

Nous pouvons aussi accéder aux caractères d'une String. Passons à travers chaque caractère grâce à une boucle.

var myCat = "Athena"
for character in myCat {
    print(character)
}

Nous pouvons aussi compter le nombre de caractères dans une String en ajoutant .count après le nom de la variable.

var myCat = "Athena"
print(myCat.count)

Jouer avec la "casse"

La casse en programmation représente le fait de mettre un caractère en majuscule ou minuscule. On dit d'ailleurs qu'une String est sensible à la casse car lors de comparaison, chat est différent de CHAT.

On a plusieurs méthodes pour jouer avec la casse :

  • uppercased() pour mettre en majuscule.
  • lowercased() pour mettre en minuscule.
  • capitalized pour mettre une majuscule en début de chaque mot.
var phrase = "SalUT LeS cOdeuRs"
print(phrase.uppercased())
print(phrase.lowercased())
print(phrase.capitalized)

Autres

Voir si une String est vide avec isEmpty.

var phrase = "Phrase de Test"
print(phrase.isEmpty)

Remplacer des caractères avec replacingOccurrences(of: "recherche", with: "remplacement").

var phrase = "Phrase de Test"
print(phrase.replacingOccurrences(of: "e", with: "euuu"))

Il existe bien d'autres méthodes pour modifier des Strings. Avec ce que nous avons vu, c'est ce que vous utiliserez 80% du temps.