cybercursus

Les chaînes de caractères

13 min · Débutant · 3 octobre 2026

Sommaire
  1. Le package strings
  2. Octets et runes : le piège de l’Unicode
  3. Construire une chaîne efficacement
  4. À toi de jouer

Le package strings

go
import "strings"

texte := "Bonjour le monde"

fmt.Println(len(texte))                        // 16
fmt.Println(strings.ToUpper(texte))             // "BONJOUR LE MONDE"
fmt.Println(strings.Contains(texte, "monde"))   // true
fmt.Println(strings.Replace(texte, "monde", "Go", 1)) // "Bonjour le Go"
fmt.Println(strings.Split(texte, " "))          // [Bonjour le monde]

Contrairement à Java où .toUpperCase() est une méthode de l’objet String, Go utilise des fonctions du package strings qui prennent la chaîne en paramètre : strings.ToUpper(texte), pas texte.ToUpper().

Octets et runes : le piège de l’Unicode

go
mot := "café"
fmt.Println(len(mot)) // 5 : nombre d'octets, pas de caracteres !

compteur := 0
for range mot {
  compteur++
}
fmt.Println(compteur) // 4 : nombre reel de caracteres (runes)

Attention

len() sur une chaîne Go compte des octets, pas des caractères Unicode. Pour un texte contenant des accents ou des caractères non-ASCII, utilise for range ou utf8.RuneCountInString() pour un compte de caractères fiable.

Construire une chaîne efficacement

go
import "strings"

var constructeur strings.Builder
for i := 1; i <= 3; i++ {
  constructeur.WriteString(fmt.Sprintf("%d, ", i))
}
fmt.Println(constructeur.String()) // "1, 2, 3, "

fmt.Sprintf fonctionne comme fmt.Printf, mais renvoie la chaîne formatée au lieu de l’afficher directement.

À toi de jouer

go
import "strings"

phrase := "Go est amusant"
resultat := strings.Contains(phrase, "amusant")
fmt.Println(resultat)
Que produit ce code à l'exécution ?
Pourquoi `len("café")` renvoie-t-il 5 en Go, et non 4 comme on pourrait s'y attendre pour un mot de 4 lettres ?
Pourquoi utilise-t-on strings.Builder plutôt que des concaténations répétées avec + à l'intérieur d'une boucle qui construit une longue chaîne ?

Pour aller plus loin

Commentaires

Recherche