Les chaînes de caractères
13 min · Débutant · 3 octobre 2026
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)